错误CS0117:';BindingFlags';不包含';GetProperty';

本文关键字:包含 GetProperty BindingFlags 错误 CS0117 | 更新日期: 2023-09-27 18:28:47

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

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

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

是否有将由Unity3D编译的等效程序?

错误CS0117:';BindingFlags';不包含';GetProperty';

您需要让代码区分它运行的平台。在编辑器中,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