我正在开发一个使用大量反射的iOS / MonoTouch项目。一切都很好,但是当我编译 Debug | iPhone 版本时,我得到了错误:
错误MT2002:无法解析引用:System.Boolean System.Reflection.PropertyInfo :: op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo)
有趣的是,Release | iPhone版本运行良好。
有什么不对?
答案 0 :(得分:7)
==
的{{1}}运算符重载(内部命名为PropertyInfo
)在.NET 4.0及更高版本中可用。 Iow它在MonoTouch附带的op_Equality
版本中不可用(它是Silverlight,2.1,配置文件的超集)。
正在发生的事情可能是在构建调试时使用的预编译程序集的不同版本(与发布相比)。此版本使用MonoTouch中不可用的方法,这会在链接或AOT-ing您的应用程序时导致错误。
解决方案:使用MonoTouch附带的mscorlib.dll版本重新编译此程序集。这将避免引用mscorlib.dll
(并使用op_Equality
),并且构建应该可以正常工作。