我在这里提出了类似的问题(链接),假设这个类型:
public class Product {
public string Name { get; set; }
public string Title { get; set; }
public string Category { get; set; }
public bool IsAllowed { get; set; }
}
还有这个使用MemberExpression
的:
public class HelperClass<T> {
public static void Property<TProp>(Expression<Func<T, TProp>> expression) {
var body = expression.Body as MemberExpression;
if(body == null) throw new ArgumentException("'expression' should be a member expression");
string propName = body.Member.Name;
Type proptype = null;
}
}
我这样使用它:
HelperClass<Product>.Property(p => p.IsAllowed);
在
HelperClass
中,我只需要属性名称(例如IsAllowed
)和属性类型(例如Boolean
)。所以我可以获取属性名称,但无法获取属性类型。在调试中,我看到了以下图片中显示的属性类型:
那么,您有什么建议来获取属性类型?