我创建了一个使用System.Reflection命名空间的项目。好吧,当我尝试使用该方法时GetInterfaces,我发现它在 Windows 应用商店中不存在。
我尝试创建一个扩展方法,并尝试使用其余方法创建一个类似的GetInterfaces,但我不必这样做。
有没有办法GetInterfaces在商店应用程序中使用?
我创建了一个使用System.Reflection命名空间的项目。好吧,当我尝试使用该方法时GetInterfaces,我发现它在 Windows 应用商店中不存在。
我尝试创建一个扩展方法,并尝试使用其余方法创建一个类似的GetInterfaces,但我不必这样做。
有没有办法GetInterfaces在商店应用程序中使用?
首先,我必须说这个问题非常简单,您只需要知道在哪里搜索即可。
首先,您必须访问.NET for Windows Store MSDN docs。
一点关于 .NET for Windows Store 中的反射。反思被重写并被转移到TypeInfo课堂上。您感兴趣的 API 位于TypeInfo.ImplementedInterfacesproperty中。
TypeInfo要从指定的类中获取,您必须使用GetTypeInfo()方法,为此您必须包含命名空间System.Reflection。
代码示例
using System.Reflection;
...
var interfaces = typeof(string).GetTypeInfo().ImplementedInterfaces;
...
就这样。您可以在此处阅读有关 WinRT 中反射的更多信息:MSDN,System.Reflection命名空间。
有些人可能会发现这更简单:
使用Type.GetInterface(string name, bool ignoreCase)而不是Type.GetInterface(string name).
默认情况下GetInterface(string name)不会忽略大小写,因此传入 false 以保持功能相同。