Есть ли способ получить 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)

Другие вопросы по тегам