2

我创建了一个使用System.Reflection命名空间的项目。好吧,当我尝试使用该方法时GetInterfaces,我发现它在 Windows 应用商店中不存在。

我尝试创建一个扩展方法,并尝试使用其余方法创建一个类似的GetInterfaces,但我不必这样做。

有没有办法GetInterfaces在商店应用程序中使用?

4

2 回答 2

9

首先,我必须说这个问题非常简单,您只需要知道在哪里搜索即可。

首先,您必须访问.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命名空间

于 2013-09-21T23:08:35.517 回答
1

有些人可能会发现这更简单:

使用Type.GetInterface(string name, bool ignoreCase)而不是Type.GetInterface(string name).

默认情况下GetInterface(string name)不会忽略大小写,因此传入 false 以保持功能相同。

于 2015-06-10T18:17:16.187 回答