我创建了一个使用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.ImplementedInterfaces
property中。
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 以保持功能相同。