4

是否有关于 MonoTouch AOT 助手的 ServiceStack.Text.JSConfig 文档?

我发现了这个... MonoTouch 上的 ServiceStack JIT 错误 ,我查看了代码,但没有评论,坦率地说,这有点神秘。

根据我对 AOT 过程的理解,确保发出类型/方法所需要做的就是在编译器认为可以使用/调用它的源中拥有该类型/方法。没有必要在运行时实际使用/调用任何东西。AOT 的全部意义在于它是一个编译时进程。因此,只要优化器不删除它,将使用/调用放在未使用的方法中就可以工作。

我一直在尝试使用 ServiceStack.Text.JsConfig.RegisterTypeForAot(); (以一种未使用的方法)来解决我的 AOT 问题,但是当我有太多调用它时遇到了其他奇怪的问题。看其他问题...

调用 ServiceStack.Text.JsConfig.RegisterTypeForAot<T>(); 使用 MonoTouch 在设备上启动时导致 SIGSEGV

我可能错误地使用了 RegisterTypeForAot() 方法吗?其他方法有什么作用?RegisterForAot() 和 InitAot()

4

1 回答 1

1

除了JsConfig 中JsConfig.InitForAot()已经内联的内容之外,没有其他文档,即:

为 MonoTouch AOT 编译器提供提示,以便为所有 DTO 预编译通用类。只需要在静态构造函数中调用一次。

您应该只需要为每种类型调用JsConfig.InitForAot()存根和 aJsConfig.RegisterTypeForAot<T>()来让 MonoTouch 编译器提前知道需要预先生成哪些泛型代码,以便所有代码都可用于泛型反射。如果您遇到问题,请在GitHub 项目问题上提交一个带有该问题的小型独立测试用例,以便我们查看是否有任何解决方法可以解决。

于 2012-12-11T01:48:55.720 回答