私はフープを飛び越えなければなりませんでしたが、私のプロジェクトServiceStack
で iOS で作業することがほぼできました。Monotouch
1 つの実行時JIT
例外が保留されています。
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>();
上記のコードを実行すると、例外が発生します。これは、ジェネリック パラメータが値型だからでしょうか。それとも、これらが静的なクラスとメソッドだからですか? 上記の方法で Monotouch を強制的に AOT にするにはどうすればよいですか?
問題の SS コードは、 https ://github.com/ServiceStack/ServiceStack.Text/tree/master/src/ServiceStack.Text/Json の JsonTypeSerializer.cs および JsonWriter.Generic.cs にあり ます。