views:

52

answers:

2

Is there any way I can get the PropertyInfo for a property from its getter? Like this:

public object Foo
{
    get
    {
        PropertyInfo propertyInfoForFoo = xxx;
        ...
    }
}

I want to avoid having to hard code the name of the property as a string, as that's tricky to maintain.

I'm using .NET 2.0, so I'm hoping for a linq-less solution.

A: 

Um... So how were you planning on being "given" the getter?

The only way I see is by something like MyGetProperyInfo(x => x.Foo);

which can be done, although it requires a lambda & an Expression<> (neither of which is available in C# v2)

James Curran
Lambdas are available in c# 2, just not linq. Not sure about Expression<>.
Jon B
@JOnB: `Expression` and all subtypes are implemented in the System.Core assembly, and were added in .NET 3.5.
Richard
+2  A: 

MethodBase.GetCurrentMethod() will return the MethodInfo object for get_YourPropertyName.

PropertyInfo property = GetType().GetProperty(MethodBase.GetCurrentMethod().Name.Substring("get_".Length));
Kirk Woll