【问题标题】:Does MonoTouch support C# dynamics? [duplicate]MonoTouch 是否支持 C# 动态? [复制]
【发布时间】: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


【解决方案1】:

我上次检查,由于 Apple 禁止 JIT,因此不支持动态。在 Android Xamarin 工具中确实可以利用 dynamic 关键字,但 Apple 需要预编译代码。有一个关于这些工具的出色 .NET Rocks 播客,描述了使用这些工具处理这些不同平台的概述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2013-01-26
    • 2014-02-07
    • 2014-02-04
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多