Exemplo n.º 1
0
        // 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>));
        }
Exemplo n.º 2
0
        public static void Register <T>()
        {
            var i          = 0;
            var serializer = JsonTypeSerializer.Instance;

            if (new List <T>() != null)
            {
                i++;
            }
            if (new T[0] != null)
            {
                i++;
            }
            if (serializer.GetParseFn <T>() != null)
            {
                i++;
            }
            if (DeserializeArray <T[], JsonTypeSerializer> .Parse != null)
            {
                i++;
            }

            JsConfig <T> .ExcludeTypeInfo = false;
            //JsConfig<T>.SerializeFn = arg => "";
            //JsConfig<T>.DeSerializeFn = arg => default(T);

            DeserializeArrayWithElements <T, JsonTypeSerializer> .ParseGenericArray(null, null);

            DeserializeCollection <JsonTypeSerializer> .ParseCollection <T>(null, null, null);

            DeserializeListWithElements <T, JsonTypeSerializer> .ParseGenericList(null, null, null);

            SpecializedQueueElements <T> .ConvertToQueue(null);

            SpecializedQueueElements <T> .ConvertToStack(null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteList(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteIList(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteEnumerable(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteListValueType(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteIListValueType(null, null);

            JsonReader <T> .Parse(null);

            JsonWriter <T> .WriteFn();

            TranslateListWithElements <T> .LateBoundTranslateToGenericICollection(null, null);

            TranslateListWithConvertibleElements <T, T> .LateBoundTranslateToGenericICollection(null, null);

            QueryStringWriter <T> .WriteObject(null, null);
        }
Exemplo n.º 3
0
        public static ICollection <TTo> TranslateToGenericICollection(
            ICollection <TFrom> fromList, Type toInstanceOfType)
        {
            var to = (ICollection <TTo>) TranslateListWithElements <TTo> .CreateInstance(toInstanceOfType);

            foreach (var item in fromList)
            {
                var toItem = ConvertFn(item);
                to.Add(toItem);
            }
            return(to);
        }
Exemplo n.º 4
0
            internal static int Register<T, TSerializer>()
                where TSerializer : ITypeSerializer
            {
                var i = 0;

                if (JsonWriter<T>.WriteFn() != null) i++;
                if (JsonWriter.Instance.GetWriteFn<T>() != null) i++;
                if (JsonReader.Instance.GetParseFn<T>() != null) i++;
                if (JsonReader<T>.Parse(null) != null) i++;
                if (JsonReader<T>.GetParseFn() != null) i++;
                //if (JsWriter.GetTypeSerializer<JsonTypeSerializer>().GetWriteFn<T>() != null) i++;
                if (new List<T>() != null) i++;
                if (new T[0] != null) i++;

                JsConfig<T>.ExcludeTypeInfo = false;

                if (JsConfig<T>.OnDeserializedFn != null) i++;
                if (JsConfig<T>.HasDeserializeFn) i++;
                if (JsConfig<T>.SerializeFn != null) i++;
                if (JsConfig<T>.DeSerializeFn != null) i++;
                //JsConfig<T>.SerializeFn = arg => "";
                //JsConfig<T>.DeSerializeFn = arg => default(T);
                if (TypeConfig<T>.Properties != null) i++;

                /*
                if (WriteType<T, TSerializer>.Write != null) i++;
                if (WriteType<object, TSerializer>.Write != null) i++;

                if (DeserializeBuiltin<T>.Parse != null) i++;
                if (DeserializeArray<T[], TSerializer>.Parse != null) i++;
                DeserializeType<TSerializer>.ExtractType(null);
                DeserializeArrayWithElements<T, TSerializer>.ParseGenericArray(null, null);
                DeserializeCollection<TSerializer>.ParseCollection<T>(null, null, null);
                DeserializeListWithElements<T, TSerializer>.ParseGenericList(null, null, null);

                SpecializedQueueElements<T>.ConvertToQueue(null);
                SpecializedQueueElements<T>.ConvertToStack(null);
                */

                WriteListsOfElements<T, TSerializer>.WriteList(null, null);
                WriteListsOfElements<T, TSerializer>.WriteIList(null, null);
                WriteListsOfElements<T, TSerializer>.WriteEnumerable(null, null);
                WriteListsOfElements<T, TSerializer>.WriteListValueType(null, null);
                WriteListsOfElements<T, TSerializer>.WriteIListValueType(null, null);
                WriteListsOfElements<T, TSerializer>.WriteGenericArrayValueType(null, null);
                WriteListsOfElements<T, TSerializer>.WriteArray(null, null);

                TranslateListWithElements<T>.LateBoundTranslateToGenericICollection(null, null);
                TranslateListWithConvertibleElements<T, T>.LateBoundTranslateToGenericICollection(null, null);

                QueryStringWriter<T>.WriteObject(null, null);
                return i;
            }
Exemplo n.º 5
0
        public static void Register <T>()
        {
            var i          = 0;
            var serializer = JsonTypeSerializer.Instance;

            if (new List <T>() != null)
            {
                i++;
            }
            if (new T[0] != null)
            {
                i++;
            }
            if (serializer.GetParseFn <T>() != null)
            {
                i++;
            }
            if (DeserializeArray <T[], JsonTypeSerializer> .Parse != null)
            {
                i++;
            }

            DeserializeArrayWithElements <T, JsonTypeSerializer> .ParseGenericArray(null, null);

            DeserializeCollection <JsonTypeSerializer> .ParseCollection <T>(null, null, null);

            DeserializeListWithElements <T, JsonTypeSerializer> .ParseGenericList(null, null, null);

            SpecializedQueueElements <T> .ConvertToQueue(null);

            SpecializedQueueElements <T> .ConvertToStack(null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteList(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteIList(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteEnumerable(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteListValueType(null, null);

            WriteListsOfElements <T, JsonTypeSerializer> .WriteIListValueType(null, null);

            JsonReader <T> .Parse(null);

            JsonWriter <T> .WriteFn();

            TranslateListWithElements <T> .LateBoundTranslateToGenericICollection(null, null);

            TranslateListWithConvertibleElements <T, T> .LateBoundTranslateToGenericICollection(null, null);
        }
Exemplo n.º 6
0
        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>));
        }