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())+“]”;