.NET reflection - Get Declaring class type from instance property

2.9k views Asked by At

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

1

There are 1 answers

0
thecoop On BEST ANSWER

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;