从Object取消装箱时访问PropertyInfo的ReflectedType

时间:2013-03-21 08:16:47

标签: c# reflection

让我们假设我有一些从反射过程创建的PropertyInfo对象。

通常我可以通过其ReflectedType属性获取内部对象的类型。但如果它被装入对象我就无法访问它。

var x = property.ReflectedType //Works as charm
var y = ((object)property).ReflectedType // Wouldn't work

我应该如何访问装箱到对象的PropertyInfo的ReflectedType属性?

2 个答案:

答案 0 :(得分:1)

如果您确定object引用PropertyInfo,请转回PropertyInfo,然后您就可以访问该媒体资源。

var z = ((PropertyInfo)y).ReflectedType

关于你对问题的额外评论进行编辑:如果您仍然可以访问您想要执行的属性变量,那么只需使用它......我觉得您对这里的某些内容感到困惑,但您应该提供更多信息,因为没有人可以帮助你,除非你这样做。

答案 1 :(得分:0)

在阅读@ fish的回答时,这可能就是你想做的事情:

private static void SetPropertyValue(object v, XElement item, PropertyInfo property)
{
  property.SetValue(v, Convert.ChangeType(item.Value, property.PropertyType));
}

这有帮助吗?