ricardo
ricardo

Reputation: 1452

.NET reflection - Get Declaring class type from instance property

Is it possible to get the type of a class from a property instance

I tried the following

var model = new MyModel("SomeValueForMyProperty")

Type declaringType = model.MyProperty.GetType().DeclaringType

But the result is always not for both DeclaringType and ReflectedType

Upvotes: 3

Views: 3048

Answers (1)

thecoop
thecoop

Reputation: 46148

There is no direct link from a Type to a class declaring a property of that type.

You'll need to use a PropertyInfo:

PropertyInfo propInfo = model.GetType().GetProperty("MyProperty");

// get the property value:
object value = propInfo.GetValue(model, null);
// get the property's declaring type:
Type declaringType = propInfo.DeclaringType;

Upvotes: 1

Related Questions