【问题标题】:VB.NET - How to get Assembly from PropertyInfo?VB.NET - 如何从 PropertyInfo 获取程序集?
【发布时间】:2012-09-12 14:08:18
【问题描述】:

我需要能够使用反射动态地实例化一个对象。此时我有一个PropertyInfo,需要先获取该对象的Assembly,然后才能调用CreateInstance 方法。

代码如下:

Dim subObjectPropInfo As PropertyInfo = GetPropertyInfo(baseObject, "Name")
Dim asm As Assembly = ?????
Dim subObjType As Type = asm.GetType(subObjectPropInfo.PropertyType.FullName)
Dim subObject As Object = Activator.CreateInstance(subObjType)

问题是:如何从 PropertyInfoobject 获取我需要实例化的对象的程序集?是否可以 ?如果没有,有什么办法呢?

我过去总是使用相同的程序集,所以这样做的方式并不是真正动态的。现在对象来自多个程序集,不能像以前那样做。

【问题讨论】:

  • 注意第三行可以简化为Dim subObjType As Type = subObjectPropInfo.PropertyType

标签: vb.net .net-assembly propertyinfo


【解决方案1】:

尝试使用 PropertyInfo 对象中的 PropertyType.Assembly 属性。

subObjectPropInfo.PropertyType.Assembly

【讨论】:

  • 这给出了声明类型的程序集(baseObject 的程序集),而不是subObjectPropInfo 属性中对象的程序集。
  • 会 subObjectPropInfo.PropertyType.DeclaringType.Assembly 代替吗?
  • 我已经编辑了答案,因为它与 PropertyType.Assemble 一起使用。所有的功劳都归功于你给出的提示来找到它! ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-27
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多