1

我有一个用 C++ 制作的第三方 DLL,但我不知道如何获取它的属性。我可以通过快速观看看到它们,但是属性太多,我很难用滚动条移动。可能大约有 6000 处房产。我不想一个一个地写它们,我试图通过反射来访问它们,所以我可以把所有的东西都扔进一个包里,用户稍后会选择显示什么,不显示什么。

问题是这些属性在标准反射命令 GetProperties() 下不显示;

如果也尝试了以下操作,请参见:

PropertyInfo[] pi = o.GetType().GetProperties();
MemberInfo[] mi = o.GetType().GetMembers();
MethodInfo[] mti = o.GetType().GetMethods();

它们都不包含智能的东西。我确实在快速监视下的 Object / Base / DynamicView 下找到了该属性。

Base 类型为:((System.MarshalByRefObject)(((System.__ComObject)(o))))

知道我不知道如何使用反射来获取动态视图中的属性列表

4

1 回答 1

0

D-Stanley 的评论为我指明了好的方向。我从那里找到了几个链接之后的解决方案。没有完全相同的问题,但足够接近,它解决了我的问题。

解决方案:使用基于 IDispatch 的 COM 对象进行反射

于 2013-10-02T14:25:48.830 回答