Reputation: 1452
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
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