我有一个关于反思的问题。
我有一个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信息是从哪里来的…

在Item Class本身中,没有这样的属性。
正常情况下,我可以实例化对象本身的特定对象。
特定的->方法包含已定义对象(如Matrix或Textfield)的所有信息...这就是ComObject本身。对象项包括所有的基本信息,根据位置或其他东西,如一些标准方法...
这就是物品本身

有什么想法吗?
发布于 2015-10-30 01:17:02
为什么要尝试调用该属性的get方法?
var method = property.GetGetMethod();
var spesific = method.Invoke(NewItem, null);// spesific has dynamic Members...有一种更简单的方法:
object value = property.GetValue(NewItem);假设NewItem是实现IItem的类的实例
发布于 2015-11-02 21:30:20
显然,COM对象对反射的响应与其他类略有不同。我以前没有尝试过在它们上使用反射,目前也没有任何代码可以让我的手指进入实验,但这里有一些问题可能会帮助你找到正确的方向。
也许本文中的原则也会帮助您朝着正确的方向前进:https://support.microsoft.com/en-us/kb/320523
https://stackoverflow.com/questions/33420095
复制相似问题