Пример #1
0
    public static void InitAot <T>()
    {
        var hold = DeserializeBuiltin <T> .Parse;

        hold = DeserializeArray <T[], TSerializer> .Parse;
        DeserializeType <TSerializer> .ExtractType(default(ReadOnlySpan <char>));

        DeserializeArrayWithElements <T, TSerializer> .ParseGenericArray(default(ReadOnlySpan <char>), null);

        DeserializeCollection <TSerializer> .ParseCollection <T>(default(ReadOnlySpan <char>), null, null);

        DeserializeListWithElements <T, TSerializer> .ParseGenericList(default(ReadOnlySpan <char>), null, null);
    }
Пример #2
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++;
                }



                // zhaojh
                //if (  WriteType<T, TSerializer>.testsAOT != null ) i++;

                // AOT for ServiceStack.Text.Common.ParseMethodUtilities+<GetParseFn>
                Func <string, T> t = x => default(T);

                DeserializeType <TSerializer> .ParseAbstractType <T> (null);



//*
                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);
            }