मुझे हुप्स के माध्यम से कूदना पड़ा है, लेकिन मैंने लगभग को अपने प्रोजेक्ट में Monotouch
के साथ आईओएस पर काम करने में कामयाब रहा है। एक क्रम 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();
}
एक परीक्षण के रूप में, मैं आंतरिक तरीके और प्रकार के सार्वजनिक और शामिल करने के लिए एस एस कोड को संशोधित किया मेरे प्रोजेक्ट के स्टार्टअप कोड में निम्नलिखित (वास्तव में कॉल करने के लिए)।
var ick = ServiceStack.Text.Json.JsonWriter<int>.WriteFn();
var erk = ServiceStack.Text.Json.JsonTypeSerializer.Instance.GetWriteFn<int>();
यह अभी भी किसी कारण से AOT सचेत नहीं है, मैं अपवाद जब कार्यान्वित ऊपर कोड! क्या ऐसा इसलिए है क्योंकि सामान्य पैरामीटर एक मान प्रकार है? या ऐसा इसलिए है क्योंकि ये स्थिर वर्ग और विधियां हैं? मैं मोनोटच को एओटी के ऊपर विधियों को कैसे मजबूर कर सकता हूं?
सवाल में एस एस कोड पर JsonTypeSerializer.cs और JsonWriter.Generic.cs में है: https://github.com/ServiceStack/ServiceStack.Text/tree/master/src/ServiceStack.Text/Json
यह अजीब लग रहा है। क्या आप एक परीक्षण केस के साथ http://bugzilla.xamarin.com पर एक बग फाइल कर सकते हैं? –
एक ही समस्या होने पर, इनट्स की सूची को क्रमबद्ध करने का एकमात्र तरीका यह है: var serializedData = "[" + string.Join (",", Ids.ToArray()) + "]"; –