1
我有一个用C++编写的第三方DLL,我无法弄清楚如何获取它的属性。我可以通过快速查看来看到它们,但是有太多属性,我无法使用滚动条移动。可能在6000个物业的某处。我不想一个接一个写他们,我试图通过反射来访问它们,所以我可以把所有这些都放在一个包里,用户稍后会选择显示什么和不显示什么。对象动态视图属性的反射
问题是,这些属性不知何故不显示在标准的反射命令下GetProperties();
如果尝试下面的太见:
PropertyInfo[] pi = o.GetType().GetProperties();
MemberInfo[] mi = o.GetType().GetMembers();
MethodInfo[] mti = o.GetType().GetMethods();
其中没有包含什么智能。我通过快速查看发现了 Object/Base/DynamicView下的属性。
基地将是类型:((System.MarshalByRefObject)(((System.__ComObject)(o))))
知道,我不知道如何使用反射来动态视图中得到的属性列表
的可能重复(http://stackoverflow.com/questions/10615019/get-property-names-via-reflection-of- [通过COM对象的反射获取属性名称] an-com-object) –
问题不在于你已经使用'dynamic',而是基础对象是一个COM对象,它没有通过反射完全暴露出来.. –
我显然没有适当的搜索条件。但派遣编组做了诡计。最后,我结束了8223个属性,这比我的猜测还要多。只是为了添加我以前对Com DLL的反射,但是这是第一个动态公开它们的方法和属性的反射。 – Franck