错误CS0117:' BindingFlags'不包含' GetProperty'的定义

时间:2015-12-31 20:35:01

标签: c# unity3d mono uwp

我正在尝试将Unity 5.3.1 mono项目移植到Windows应用商店。以下是我无法完全解决的一行代码:

            var pia = T.GetTypeInfo().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.GetProperty);

BindingFlags.GetProperty似乎不存在。根据.Net 4.5文档,此枚举属性应该在那里。如果删除GetProperty方法,我不知道代码会发生什么。

是否存在Unity3D编译的等效文件?

1 个答案:

答案 0 :(得分:1)

您需要让代码区分运行的平台。在编辑器中,Unity将针对Mono框架编译您的代码,而在构建WinStore期间,它将针对.NET 4或其他东西进行编译。 无论你写什么,你的代码都不会为其中一个平台编译。

您需要为这两个平台提供不同的代码。例如:

#if UNITY_METRO
var pia = T.GetTypeInfo().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy | BindingFlags.GetProperty);
#else
var pia = T.GetType().GetProperties(...);
#endif