[英]Get dynamic members via reflection
我有一个反思的问题。
我有一个ComObject的命名项(NewItem-> Instance)。 (接口)
由于某种原因,我需要此对象的某些属性。
var Item = typeof(IItem);
var props = Item.GetProperties();
foreach (var prop in props)
{
var property = Item.GetProperty(prop.Name);
var Propertytype = property.GetType().Name;
if (Propertytype == "RuntimePropertyInfo")
{
var method = property.GetGetMethod();
var spesific = method.Invoke(NewItem, null);// spesific has dynamic Members...
}
}
而且我不知道如何获得动态成员。 涉及到一些类...所以我真的不知道属性“ Spesific” // RuntimeProperty Info来自何处...
在Item类本身中,没有这样的属性。
以通常的方式,我可以实例化对象本身。
特定的->方法具有已定义对象(如矩阵或文本字段)的所有信息...这就是ComObject本身。 对象Item包含根据放置或其他诸如某些标准方法之类的所有基本信息。
有任何想法吗?
为什么要尝试调用属性的get方法?
var method = property.GetGetMethod();
var spesific = method.Invoke(NewItem, null);// spesific has dynamic Members...
有一个更简单的方法:
object value = property.GetValue(NewItem);
假设NewItem
是实现IItem
的类的实例
显然,COM对象对反射的响应与其他类有所不同。 我以前没有尝试过对它们进行反射,并且目前没有任何代码可以尝试进行尝试,但是这里有一些SO问题可能有助于您朝正确的方向发展。
也许这篇文章的原理也可以帮助您朝正确的方向前进: https : //support.microsoft.com/en-us/kb/320523
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.