iOS的C#解释VS代码生成

问题描述 投票:0回答:1

我看了一下,iOS上是不能发出IL代码的,因此表达式是用AOT选项预编译的,而 Expression的,不能被AOT的都是解释。我的问题是,为什么iOS允许解释而不允许运行时代码生成,除了性能之外,不是一样的吗。为什么解释不是安全问题,而代码生成却是安全问题?

c# ios xamarin.ios interpreter aot
1个回答
1
投票

口译员顾名思义,它允许你在运行时解释你的应用程序的一些C#部分,同时像往常一样提前编译其余部分。

发电机称为 抚摸 在Xamarin.iOS中,采用这些定义文件,并使用.NET工具来实现。编入临时汇编. 然而,这个临时程序集不能用来调用Objective-C代码。然后,生成器读取临时汇编,生成可以在运行时使用的C#代码。

为什么说解释不是安全问题,但代码生成是安全问题呢?

这就是为什么,例如,如果你在你的定义.cs文件中添加了一个随机属性,它不会出现在输出的代码中。生成器不知道它,因此 btouch 不知道在临时装配中寻找它来输出。

参考链接 。iOS应用架构 ,Xamarin.iOS 解释器介绍

© www.soinside.com 2019 - 2024. All rights reserved.