reflection - WinRT 反射 (C++/CX)

标签 reflection windows-runtime introspection c++-cx

如何在 C++/CX 中内省(introspection)对象?我知道如何获取它的类名(使用 IInspectable),但是如果我只有方法的名称(字符串),我无法弄清楚如何获取它的属性列表或如何调用方法。我在这里和谷歌搜索了答案,但我发现与 WinRT 的 .NET 层有关(C++/CX 中似乎没有 System.Reflection 命名空间)。

最佳答案

正如 svick 所暗示的,您将类名(从 IInspectable::GetRuntimeClassName 检索)交给 RoGetMetaDataFile。这将返回 IMetaDataImport2 .现在调用IMetaDataImport2::FindTypeDefByName .这将返回一个 typedef 标记。现在调用IMetaDataImport2::GetTypeDefProps这将为您提供有关类型的属性。

从 typedef 属性中,您可以检索其他信息 - 如果它是接口(interface)/结构(或枚举),则枚举方法/字段,查找运行时类的类型(如果它是接口(interface)或类)等。

关于reflection - WinRT 反射 (C++/CX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553273/

相关文章:

reflection - 使类型指向带有反射的指针

c# - 如何在 C# 中的这种奇怪情况下创建通用列表

iphone - 如何使用 plist NSString 项作为 UIImageView 对象名称

c# - 更改 gridView 位置 WinRT Xaml

C# - 获取对对象的引用数

json - 如何在 C# XAML Windows 8 Metro App 中解析/反序列化 JSON 字符串?

c# - 在 WinRT 应用程序中处理捏合、缩放、旋转手势

c++ - 如何检查派生类的可调用成员函数是否存在?

delphi - 有没有办法在 Delphi 6 中自动分配动态创建的组件的事件处理程序?

c++ - 增强融合 : convert adapted struct type to text