Tôi có phương thức chấp nhận cá thể Expression<Func<T, object>>
. Tôi muốn truy cập vào loại dữ liệu thực tế đang được trả về bởi một cá thể biểu thức cụ thể, thay vì object
.Nhận loại trả về thực tế từ Biểu thức <Func <T, object>> ví dụ
Tôi có thể làm cho nó hoạt động để tham khảo trực tiếp thuộc tính, vì vậy nếu tôi chuyển sang biểu thức x => x.IntegerProperty
tôi có thể nhận tham chiếu Kiểu cho số nguyên. Cách tiếp cận này yêu cầu chuyển đổi nó thành MemberExpression.
Tuy nhiên, tôi không thể làm cho nó hoạt động cho các biểu thức tùy ý. Ví dụ, nếu biểu thức là x => x.IntegerProperty.ToString()
Tôi muốn lấy tham chiếu Kiểu cho một chuỗi. Tôi không thể biên dịch nó thành MemberExpression, và nếu tôi chỉ .Compile()
nó và kiểm tra kiểu trả về, tôi nhận được "đối tượng".
Làm cách nào tôi có thể xem trường hợp biểu thức cụ thể và lấy được loại trả về thực tế?
Về mặt kỹ thuật, loại trả về thực tế của biểu thức là ... 'đối tượng'. Vì hàm được yêu cầu trả về 'đối tượng', các biểu thức cần thiết được tạo ra để đảm bảo rằng nó được trả về (một chuyển đổi trong trường hợp này). –