.NET反射 - 从实例属性中获取声明类类型

时间:2011-02-16 14:39:43

标签: .net reflection gettype

是否可以从属性实例中获取类的类型

我尝试了以下

var model = new MyModel("SomeValueForMyProperty")

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

但结果始终不适用于DeclaringType和ReflectedType

1 个答案:

答案 0 :(得分:1)

Type没有直接链接到声明该类型属性的类。

您需要使用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;