| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Reflection;
 
- using System.Runtime.InteropServices;
 
- using ILRuntime.CLR.TypeSystem;
 
- using ILRuntime.CLR.Method;
 
- using ILRuntime.Runtime.Enviorment;
 
- using ILRuntime.Runtime.Intepreter;
 
- using ILRuntime.Runtime.Stack;
 
- using ILRuntime.Reflection;
 
- using ILRuntime.CLR.Utils;
 
- namespace ILRuntime.Runtime.Generated
 
- {
 
-     unsafe class LitJson_JsonMapper_Binding
 
-     {
 
-         public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
 
-         {
 
-             BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
 
-             MethodBase method;
 
-             Type[] args;
 
-             Type type = typeof(LitJson.JsonMapper);
 
-             Dictionary<string, List<MethodInfo>> genericMethods = new Dictionary<string, List<MethodInfo>>();
 
-             List<MethodInfo> lst = null;                    
 
-             foreach(var m in type.GetMethods())
 
-             {
 
-                 if(m.IsGenericMethodDefinition)
 
-                 {
 
-                     if (!genericMethods.TryGetValue(m.Name, out lst))
 
-                     {
 
-                         lst = new List<MethodInfo>();
 
-                         genericMethods[m.Name] = lst;
 
-                     }
 
-                     lst.Add(m);
 
-                 }
 
-             }
 
-             args = new Type[]{typeof(ILRuntime.Runtime.Intepreter.ILTypeInstance)};
 
-             if (genericMethods.TryGetValue("ToObject", out lst))
 
-             {
 
-                 foreach(var m in lst)
 
-                 {
 
-                     if(m.MatchGenericParameters(args, typeof(ILRuntime.Runtime.Intepreter.ILTypeInstance), typeof(System.String)))
 
-                     {
 
-                         method = m.MakeGenericMethod(args);
 
-                         app.RegisterCLRMethodRedirection(method, ToObject_0);
 
-                         break;
 
-                     }
 
-                 }
 
-             }
 
-             args = new Type[]{typeof(System.Object)};
 
-             method = type.GetMethod("ToJson", flag, null, args, null);
 
-             app.RegisterCLRMethodRedirection(method, ToJson_1);
 
-         }
 
-         static StackObject* ToObject_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
 
-         {
 
-             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
 
-             StackObject* ptr_of_this_method;
 
-             StackObject* __ret = ILIntepreter.Minus(__esp, 1);
 
-             ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
 
-             System.String @json = (System.String)typeof(System.String).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
 
-             __intp.Free(ptr_of_this_method);
 
-             var result_of_this_method = LitJson.JsonMapper.ToObject<ILRuntime.Runtime.Intepreter.ILTypeInstance>(@json);
 
-             return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
 
-         }
 
-         static StackObject* ToJson_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
 
-         {
 
-             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
 
-             StackObject* ptr_of_this_method;
 
-             StackObject* __ret = ILIntepreter.Minus(__esp, 1);
 
-             ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
 
-             System.Object @obj = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
 
-             __intp.Free(ptr_of_this_method);
 
-             var result_of_this_method = LitJson.JsonMapper.ToJson(@obj);
 
-             return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
 
-         }
 
-     }
 
- }
 
 
  |