Tôi có mã số Func<TCollection, T>
trong mã của mình. Tôi sử dụng nó để chọn các thuộc tính nhất định.Tạo biểu thức từ Func
Trong cuộc gọi đến phương thức khác, tôi cần Expression<Func<TCollection, T>>
làm tham số.
Có cách nào để chuyển đổi (hoặc tạo từ) Func<TCollection, T>
đến Expression<Func<TCollection, T>>
không?
Cảm ơn
Giả sử bạn * có thể * nhận được IL, tuy nhiên, bạn có thể dịch ngược IL, như Reflector và ILSpy. (Tất nhiên, không có gì đảm bảo rằng điều này sẽ chính xác giống như mã mà từ đó IL được biên soạn.) Có cách nào để lấy IL của một đại biểu không? – phoog
Tôi nghĩ bạn có thể cần thêm mục tiêu func.Trong cuộc gọi của mình. Tôi đã thử điều này với một Func phức tạp hơn <> và nó phàn nàn tôi đã cố gắng gọi một phương pháp dụ với một đối tượng null. Tôi đã đổi nó thành Expression.Call (Expression.Constant (func.Target), func.Method, args) và tất cả đều tốt – ben