Есть ли какой-нибудь чистый способ получить PropertyDescriptor
из дерева выражений?
У меня сейчас есть PropertyInfo
, но в идеале я хочу PropertyDescriptor
, мой код:
var prop =
(System.Reflection.PropertyInfo)
((MemberExpression)
((Expression<Func<TestClass, long>>)
(p => p.ID)).Body).Member;
Мне нужен PropertyDescriptor, потому что мне нужно использовать:
if (prop.CanResetValue(this))
{
prop.ResetValue(this);
}
else
{
prop.SetValue(this, null);
}
Я не могу использовать PropertyInfo.SetValue(this, null, null)
, поскольку он не соответствует моим потребностям, так как мне нужно сбросить значение по умолчанию, указанное в DefaultValueAttribute
.