【发布时间】:2013-05-16 17:31:46
【问题描述】:
由于 Apple 要求预编译代码,iOS 的 C# Mono 开发有一定的限制,即不允许 JIT 编译。因此,不支持诸如 Reflection.Emit 之类的调用。但是我想知道 C# 动态是否可以在为 iOS 编译的 C# 中使用。
例如:
repository.Find(repository.UserName == "John");
这里的“repository”是一个动态对象,具有静态方法“Find”和动态属性“UserName”。这种方法适用于所有现代基于 Windows 的 .NET 平台,我相信它也适用于 Android 的 Mono。但是 MonoTouch 呢?原则上不应该限制根据运行时信息动态解析动态属性——除非可能是 Apple 擅长的法律限制。
【问题讨论】:
-
来自tirania.org/monomac/archive/2011/Apr-06.html:有一个重要限制:C# 4.0 动态支持不起作用,因为它需要动态代码生成才能工作。
-
太可惜了!但并非所有动态都与代码生成有关,是吗?还是 Apple 如此严格以至于禁止任何不会导致预编译二进制文件的语言语法?感谢您的澄清。
-
这是我的理解,是的。 Apple 预先批准 iOS 应用程序中的所有代码;生成的代码在生成之前是不存在的,所以他们无法控制它。
标签: c# dynamic xamarin.ios xamarin