Tôi có truy vấn LINQ cho ra các loại ẩn danh. Tuy nhiên, bây giờ tôi muốn làm việc với các tham số của kiểu ẩn danh này và nó dường như không hoạt động.Tùy chọn Loại nghiêm ngặt và ẩn danh không đi cùng nhau?
For Each obj As Object in Query
Dim row As DataRow = obj.parameter
...
Next obj
Bây giờ trình biên dịch đưa ra lỗi trên biểu thức obj.parameter: "Tùy chọn Strict On disallows late binding". Nếu tôi hiểu đúng, trình biên dịch không biết các tham số của kiểu ẩn danh. Tôi đã thử Option Infer On (và gỡ bỏ As Object), dựa trên kết quả của Google, nhưng nó không giúp được gì. Điều đó có vẻ hợp lý, bởi vì nó luôn có vẻ là một sự chuyển đổi mở rộng với tôi.
Có cách nào để sửa lỗi này hay tôi chỉ cần tạo loại tùy chỉnh?
Ok vậy thủ phạm là khai báo IEnumerable của tôi? Tôi đã sử dụng Dim Query As IEnumerable (Of Object) – Martao
Dường như điều này đã giải quyết được nó. Có bất kỳ "nguy hiểm" nào bằng cách sử dụng suy luận tùy chọn mà tôi nên biết không? – Martao
@Martao: Không có nguy hiểm, trên thực tế bạn khá cần "Option Infer On" để hoạt động hiệu quả với Linq và các loại ẩn danh. –