servicestack,aot,Xamarin.ios,servicestack,Aot" /> servicestack,aot,Xamarin.ios,servicestack,Aot" />

Xamarin.ios 如何强制Monotouch AOT编译器查看嵌套的泛型方法?

Xamarin.ios 如何强制Monotouch AOT编译器查看嵌套的泛型方法?,xamarin.ios,servicestack,aot,Xamarin.ios,servicestack,Aot,我不得不跳出困境,但我几乎成功地让ServiceStack在我的项目中使用Monotouch在iOS上工作。一个运行时JIT异常出现: System.executionEngineeException:仅在使用--aot运行时,尝试JIT编译方法“ServiceStack.Text.Json.JsonTypeSerializer:GetWriteFn()”。 有问题的代码非常简单: 内部WriteObjectDelegate GetWriteFn() { 返回JsonWriter.WriteF

我不得不跳出困境,但我几乎成功地让
ServiceStack
在我的项目中使用
Monotouch
在iOS上工作。一个运行时
JIT
异常出现:

System.executionEngineeException:仅在使用--aot运行时,尝试JIT编译方法“ServiceStack.Text.Json.JsonTypeSerializer:GetWriteFn()”。
有问题的代码非常简单:

内部WriteObjectDelegate GetWriteFn()
{
返回JsonWriter.WriteFn();
}
作为测试,我修改了SS代码,使内部方法和类型公开,并在项目的启动代码中包含以下内容(以便实际调用)

var-ick=ServiceStack.Text.Json.JsonWriter.WriteFn();
var erk=ServiceStack.Text.Json.JsonTypeSerializer.Instance.GetWriteFn();
由于某种原因,这仍然不会提醒AOT,当上面的代码执行时,我会得到异常!这是因为泛型参数是值类型吗?还是因为这些是静态类和方法?如何强制Monotouch使用上述方法

讨论中的SS代码位于JsonTypeSerializer.cs和JsonWriter.Generic.cs中,位于:

现在monotouch中有一些通用功能。我想你应该检查一下你的代码

这看起来很奇怪。你能用测试用例在提交一个bug吗?同样的问题,序列化int列表的唯一方法是:var serializedData=“[”+string.Join(“,”,Ids.ToArray())+“]”;