对象动态视图属性的反射

本文关键字:反射 属性 视图 动态 对象 | 更新日期: 2023-09-27 18:33:47

我有一个用C++制作的第三方DLL,我不知道如何获取它的属性。 我可以通过快速观看看到它们,但是属性太多,以至于我很难使用滚动条移动。 大概有 6000 个房产。我不想一一写,我正在尝试通过反射访问它们,这样我就可以将所有内容转储到一个袋子中,用户稍后会选择显示什么和不显示什么。

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

如果尝试以下方法,请参阅:

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

它们都不包含智能的东西。我确实在下面找到了房产快速监视下的对象/基础/动态视图。

基数类型为:((System.MarshalByRefObject)(((System.__ComObject)(o))))

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

对象动态视图属性的反射

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

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