Есть ли способ получить PropertyInfo от получателя этого свойства?
Есть ли способ, которым я могу получить PropertyInfo
для собственности от ее добытчика? Как это:
public object Foo
{
get
{
PropertyInfo propertyInfoForFoo = xxx;
...
}
}
Я хочу избежать жесткого кодирования имени свойства в виде строки, так как это сложно поддерживать.
Я использую.NET 2.0, поэтому я надеюсь на решение без linq.
2 ответа
Решение
MethodBase.GetCurrentMethod() вернет объект MethodInfo для get_YourPropertyName.
PropertyInfo property = GetType()
.GetProperty(MethodBase
.GetCurrentMethod()
.Name
.Substring("get_".Length)
);
Хм... Так как ты собирался "получить" добытчика?
Единственный способ, которым я вижу, это что-то вроде MyGetProperyInfo(x => x.Foo);
что может быть сделано, хотя для этого требуется лямбда-выражение и выражение<> (ни один из которых не доступен в C# v2)