Uzyskaj typ właściwości przez MemberExpression
Zadam podobne pytanietutaj , załóżmy, że tego typu:
<code> public class Product { public string Name { get; set; } public string Title { get; set; } public string Category { get; set; } public bool IsAllowed { get; set; } } </code>
i ten, który używaMemberExpression
:
<code>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; } } </code>
Używam tego w ten sposób:
<code>HelperClass<Product>.Property(p => p.IsAllowed); </code>
wHelperClass
Potrzebuję tylko nazwy właściwości (w tym przykładzieIsAllowed
) i typ właściwości (w tym przykładzieBoolean
) Więc mogę dostać nazwę nieruchomości, ale nie mogę uzyskać typu nieruchomości. Widzę typ właściwości podczas debugowania, jak pokazano na poniższym rysunku:
Jaka jest Twoja sugestia, aby uzyskać typ nieruchomości?