// Edited to fix issues with null List<Guid> properties in response objects public static void RegisterElement <T, TElement>() { RegisterBuiltin <TElement>(); DeserializeDictionary <JsonTypeSerializer> .ParseDictionary <T, TElement>(null, null, null, null); DeserializeDictionary <JsonTypeSerializer> .ParseDictionary <TElement, T>(null, null, null, null); ToStringDictionaryMethods <T, TElement, JsonTypeSerializer> .WriteIDictionary(null, null, null, null); ToStringDictionaryMethods <TElement, T, JsonTypeSerializer> .WriteIDictionary(null, null, null, null); // Include List deserialisations from the Register<> method above. This solves issue where List<Guid> properties on responses deserialise to null. // No idea why this is happening because there is no visible exception raised. Suspect MonoTouch is swallowing an AOT exception somewhere. DeserializeArrayWithElements <TElement, JsonTypeSerializer> .ParseGenericArray(null, null); DeserializeListWithElements <TElement, JsonTypeSerializer> .ParseGenericList(null, null, null); // Cannot use the line below for some unknown reason - when trying to compile to run on device, mtouch bombs during native code compile. // Something about this line or its inner workings is offensive to mtouch. Luckily this was not needed for my List<Guide> issue. // DeserializeCollection<JsonTypeSerializer>.ParseCollection<TElement>(null, null, null); TranslateListWithElements <TElement> .LateBoundTranslateToGenericICollection(null, typeof(List <TElement>)); TranslateListWithConvertibleElements <TElement, TElement> .LateBoundTranslateToGenericICollection(null, typeof(List <TElement>)); }
public static void RegisterElement <T, TElement>() { RegisterBuiltin <TElement>(); DeserializeDictionary <JsonTypeSerializer> .ParseDictionary <T, TElement>(null, null, null, null); DeserializeDictionary <JsonTypeSerializer> .ParseDictionary <TElement, T>(null, null, null, null); ToStringDictionaryMethods <T, TElement, JsonTypeSerializer> .WriteIDictionary(null, null, null, null); ToStringDictionaryMethods <TElement, T, JsonTypeSerializer> .WriteIDictionary(null, null, null, null); TranslateListWithElements <TElement> .LateBoundTranslateToGenericICollection(null, typeof(List <TElement>)); TranslateListWithConvertibleElements <TElement, TElement> .LateBoundTranslateToGenericICollection(null, typeof(List <TElement>)); }