xamarin.ios - 如何强制 Monotouch AOT Compiler 查看嵌套的泛型方法?

标签 xamarin.ios servicestack aot

我不得不跳过箍,但我几乎设法得到ServiceStack使用 Monotouch 在 iOS 上工作在我的项目中。一个运行时 JIT异常(exception)是坚持:

System.ExecutionEngineException: Attempting to JIT compile method 'ServiceStack.Text.Json.JsonTypeSerializer:GetWriteFn<int> ()' while running with --aot-only. 

有问题的代码非常简单:

   internal WriteObjectDelegate GetWriteFn<T>()
    {
        return JsonWriter<T>.WriteFn();
    }

作为测试,我修改了 SS 代码以公开内部方法和类型,并在我的项目的启动代码中包含以下内容(以实际调用)。

var ick = ServiceStack.Text.Json.JsonWriter<int>.WriteFn();
var erk = ServiceStack.Text.Json.JsonTypeSerializer.Instance.GetWriteFn<int>();

由于某种原因,这仍然没有提醒 AOT,当上面的代码执行时,我得到了异常!这是因为泛型参数是值类型吗?还是因为这些是静态类和方法?如何强制 Monotouch 对上述方法进行 AOT?

有问题的 SS 代码位于 JsonTypeSerializer.cs 和 JsonWriter.Generic.cs 中:
https://github.com/ServiceStack/ServiceStack.Text/tree/master/src/ServiceStack.Text/Json

最佳答案

有一些通用的limitations现在在单点触控中。我认为你应该检查你的代码到其中之一。

关于xamarin.ios - 如何强制 Monotouch AOT Compiler 查看嵌套的泛型方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830468/

相关文章:

visual-studio-2012 - iOS7 在模拟器中测试后台获取?

asynchronous - ServiceStack 和 OrmLite 中的异步支持

c# - Redis key partitioning practices with linked items

Axapta:在 AOT 中按名称查找表

c# - 短指令有更好的性能吗?

ios - 适用于 iPhone 5 Retina 4 的 MonoTouch : Adding Default-568h@2x. png

c# - Xamarin.Forms 中的 SignalR

ios - 2 型蹦床用完

Xamarin.iOS 中的 iOS 选择器

redis - 如何将我的自定义 ServiceStack 身份验证提供程序与 Redis 一起使用?