ここで同様の質問をします 。このタイプを想定します。
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
は取得できますが、プロパティタイプは取得できません。次の図に示すように、デバッグでプロパティの種類が表示されます。
プロパティタイプを取得するためのあなたの提案は何ですか?