我正在尝试将一个简单的应用程序移植到Windows 8 Metro (WinRT)。似乎缺少了一些非常基本的方法。一个基本的例子:Type.GetProperty()
。它可用于Windows Phone 7、Silverlight和。net客户端配置文件。我必须安装什么东西吗?一个特殊的库)或者这个方法在。net metro配置文件中是不可用的?
好的,谢谢。现在我用this.GetType().GetTypeInfo().DeclaredProperties
using System.Reflection;
需要GetTypeInfo()
扩展方法。
反射在Metro中有一些变化:参见MSDN("反射变化" -靠近底部)
基本上,你现在需要:type.GetTypeInfo()
.
除了Nicholas Butler的回应之外,我最终使用这种扩展来维护代码在所有平台上的可重用性。
#if NETFX_CORE // Workaround for .Net for Windows Store not having Type.GetProperty method
public static class GetPropertyHelper
{
public static PropertyInfo GetProperty(this Type type, string propertyName)
{
return type.GetTypeInfo().GetDeclaredProperty(propertyName);
}
}
#endif
这样,Type.GetProperty()
在所有平台上都实现了。