如何在 C++/WinRT 中获取基础类型的 TypeName?

jvd*_*vdh 3 c++ c++-winrt

我正在尝试实现该ICustomPropertyProvider::Type()方法,但是我找不到获取TypeNameC++/WinRT 类型的方法。显然你在 C++/CX 中有Object::GetTypeand T::typeid,但在 C++/WinRT 中没有。

我尝试了以下代码,但这只是一个疯狂的猜测,因为它是我能找到的唯一与类型远程相关的东西。不过,我认为typeid()与 XAML 无关,因为它提供的唯一保证是它返回的字符串是唯一标识的。

using namespace Windows::Devices::Enumeration;
using namespace Windows::UI::Xaml::Interop;

TypeName name;
name.Name = typeid(DeviceInformation).name();
name.Kind = TypeKind::Metadata;
Run Code Online (Sandbox Code Playgroud)

Ken*_*err 5

函数winrt::xaml_typename<Type>()模板就是您所追求的。

  • 您需要包含 winrt/Windows.UI.Xaml.Interop.h 标头。 (3认同)