由于 Apple 要求对代码进行预编译,因此 C# Mono 开发 iOS 有一定的限制,即不允许 JIT 编译。因此,不支持诸如 Reflection.Emit 之类的调用。但我想知道 C# 动态是否可以在为 iOS 编译的 C# 中使用。
例如:
repository.Find(repository.UserName == "John");
这里的“repository”是一个动态对象,具有静态方法“Find”和动态属性“UserName”。这种方法适用于所有现代基于 Windows 的 .NET 平台,我相信它也适用于 Android 的 Mono。但是 MonoTouch 呢?原则上不应该限制基于运行时信息动态解析动态属性 - 除非可能是 Apple 擅长的法律限制。