Просмотр исходного кода

修复ILRuntime模式下无法使用ListComponent池的问题,原因应该是静态泛型成员的问题

tanghai 4 лет назад
Родитель
Сommit
0e23d7eee0
25 измененных файлов с 205 добавлено и 549 удалено
  1. 2 2
      Robot/Hotfix/Robot/Case/RobotCase_FirstCase.cs
  2. 2 2
      Robot/Hotfix/Robot/Console/CreateRobotConsoleHandler.cs
  3. 4 4
      Server/Hotfix/Demo/Move/MoveHelper.cs
  4. 1 1
      Server/Hotfix/Module/ActorLocation/ActorLocationSenderComponentSystem.cs
  5. 2 16
      Unity/Assets/Mono/Core/HashSetComponent.cs
  6. 4 26
      Unity/Assets/Mono/Core/ListComponent.cs
  7. 45 0
      Unity/Assets/Mono/Core/Pool.cs
  8. 11 0
      Unity/Assets/Mono/Core/Pool.cs.meta
  9. 8 8
      Unity/Assets/Mono/ILRuntime/Generate/CLRBindings.cs
  10. 0 87
      Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_ETTask_Binding.cs
  11. 0 65
      Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_ILTypeInstance_Binding.cs
  12. 0 83
      Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_String_Binding.cs
  13. 0 87
      Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_Task_Binding.cs
  14. 0 87
      Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_Vector3_Binding.cs
  15. 24 2
      Unity/Assets/Mono/ILRuntime/Generate/System_Collections_Generic_List_1_ETTask_Binding.cs
  16. 24 2
      Unity/Assets/Mono/ILRuntime/Generate/System_Collections_Generic_List_1_Task_Binding.cs
  17. 26 26
      Unity/Assets/Mono/ILRuntime/Generate/System_Collections_Generic_List_1_Vector3_Binding.cs
  18. 40 40
      Unity/Assets/Mono/ILRuntime/Generate/System_String_Binding.cs
  19. 1 1
      Unity/Codes/Hotfix/Demo/Move/M2C_PathfindingResultHandler.cs
  20. 1 1
      Unity/Codes/Hotfix/Demo/Move/MoveComponentSystem.cs
  21. 1 1
      Unity/Codes/Hotfix/Module/Config/ConfigComponentSystem.cs
  22. 1 1
      Unity/Codes/Model/Core/Object/EventSystem.cs
  23. 5 5
      Unity/Codes/ModelView/Demo/Resource/ResourcesComponent.cs
  24. 2 2
      Unity/Codes/ModelView/Demo/Resource/ResourcesLoaderComponent.cs
  25. 1 0
      Unity/Unity.Mono.csproj

+ 2 - 2
Robot/Hotfix/Robot/Case/RobotCase_FirstCase.cs

@@ -10,9 +10,9 @@ namespace ET
             using ListComponent<Scene> robots = ListComponent<Scene>.Create();
             
             // 创建了两个机器人,生命周期是RobotCase,RobotCase_FirstCase.Run执行结束,机器人就会删除
-            await robotCase.NewRobot(2, robots.List);
+            await robotCase.NewRobot(2, robots);
 
-            foreach (Scene robotScene in robots.List)
+            foreach (Scene robotScene in robots)
             {
                 M2C_TestRobotCase response = await robotScene.GetComponent<SessionComponent>().Session.Call(new C2M_TestRobotCase() {N = robotScene.Zone}) as M2C_TestRobotCase;
                 if (response.N != robotScene.Zone)

+ 2 - 2
Robot/Hotfix/Robot/Console/CreateRobotConsoleHandler.cs

@@ -37,8 +37,8 @@ namespace ET
                         // 创建机器人
                         for (int i = 0; i < options.Num; ++i)
                         {
-                            int index = i % thisProcessRobotScenes.List.Count;
-                            StartSceneConfig robotSceneConfig = thisProcessRobotScenes.List[index];
+                            int index = i % thisProcessRobotScenes.Count;
+                            StartSceneConfig robotSceneConfig = thisProcessRobotScenes[index];
                             Scene robotScene = Game.Scene.Get(robotSceneConfig.Id);
                             RobotManagerComponent robotManagerComponent = robotScene.GetComponent<RobotManagerComponent>();
                             Scene robot = await robotManagerComponent.NewRobot(Game.Options.Process * 10000 + i);

+ 4 - 4
Server/Hotfix/Demo/Move/MoveHelper.cs

@@ -17,9 +17,9 @@ namespace ET
 
             using var list = ListComponent<Vector3>.Create();
             
-            unit.Domain.GetComponent<RecastPathComponent>().SearchPath(10001, unit.Position, target, list.List);
+            unit.Domain.GetComponent<RecastPathComponent>().SearchPath(10001, unit.Position, target, list);
 
-            List<Vector3> path = list.List;
+            List<Vector3> path = list;
             if (path.Count < 2)
             {
                 unit.SendStop(0);
@@ -29,9 +29,9 @@ namespace ET
             // 广播寻路路径
             M2C_PathfindingResult m2CPathfindingResult = new M2C_PathfindingResult();
             m2CPathfindingResult.Id = unit.Id;
-            for (int i = 0; i < list.List.Count; ++i)
+            for (int i = 0; i < list.Count; ++i)
             {
-                Vector3 vector3 = list.List[i];
+                Vector3 vector3 = list[i];
                 m2CPathfindingResult.Xs.Add(vector3.x);
                 m2CPathfindingResult.Ys.Add(vector3.y);
                 m2CPathfindingResult.Zs.Add(vector3.z);

+ 1 - 1
Server/Hotfix/Module/ActorLocation/ActorLocationSenderComponentSystem.cs

@@ -59,7 +59,7 @@ namespace ET
                     }
                 }
 
-                foreach (long id in list.List)
+                foreach (long id in list)
                 {
                     self.Remove(id);
                 }

+ 2 - 16
Unity/Assets/Mono/Core/HashSetComponent.cs

@@ -5,29 +5,15 @@ namespace ET
 {
     public class HashSetComponent<T>: HashSet<T>, IDisposable
     {
-        private static readonly Queue<HashSetComponent<T>> queue = new Queue<HashSetComponent<T>>();
-        
         public static HashSetComponent<T> Create()
         {
-            if (queue.Count > 0)
-            {
-                return queue.Dequeue();
-            }
-
-            HashSetComponent<T> hashSetComponent = new HashSetComponent<T>();
-            return hashSetComponent;
-        }
-
-        private HashSetComponent()
-        {
+            return Pool.Instance.Get(typeof (HashSetComponent<T>)) as HashSetComponent<T>;
         }
 
         public void Dispose()
         {
             this.Clear();
-#if NOT_UNITY
-            queue.Enqueue(this);
-#endif
+            Pool.Instance.Recycle(this);
         }
     }
 }

+ 4 - 26
Unity/Assets/Mono/Core/ListComponent.cs

@@ -3,39 +3,17 @@ using System.Collections.Generic;
 
 namespace ET
 {
-    public class ListComponent<T>: IDisposable
+    public class ListComponent<T>: List<T>, IDisposable
     {
-        public List<T> List { get; private set; } = new List<T>();
-
-        private static readonly Queue<ListComponent<T>> queue = new Queue<ListComponent<T>>();
-
-        private ListComponent()
-        {
-        }
-
         public static ListComponent<T> Create()
         {
-            if (queue.Count > 0)
-            {
-                ListComponent<T> t = queue.Dequeue();
-                return t;
-            }
-
-            ListComponent<T> listComponent = new ListComponent<T>();
-            return listComponent;
-        }
-
-        public void Add(T t)
-        {
-            this.List.Add(t);
+            return Pool.Instance.Get(typeof (ListComponent<T>)) as ListComponent<T>;
         }
 
         public void Dispose()
         {
-            this.List.Clear();
-#if NOT_UNITY
-            queue.Enqueue(this);
-#endif
+            this.Clear();
+            Pool.Instance.Recycle(this);
         }
     }
 }

+ 45 - 0
Unity/Assets/Mono/Core/Pool.cs

@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+
+namespace ET
+{
+    public class Pool
+    {
+        private readonly Dictionary<Type, Queue<object>> pool = new Dictionary<Type, Queue<object>>();
+        
+        public static Pool Instance = new Pool();
+        
+        private Pool()
+        {
+        }
+
+        public object Get(Type type)
+        {
+            Queue<object> queue = null;
+            if (!pool.TryGetValue(type, out queue))
+            {
+                queue = new Queue<object>();
+                pool.Add(type, queue);
+            }
+
+            if (queue.Count > 0)
+            {
+                return queue.Dequeue();
+            }
+
+            return Activator.CreateInstance(type);
+        }
+
+        public void Recycle(object obj)
+        {
+            Type type = obj.GetType();
+            Queue<object> queue = null;
+            if (!pool.TryGetValue(type, out queue))
+            {
+                queue = new Queue<object>();
+                pool.Add(type, queue);
+            }
+            queue.Enqueue(obj);
+        }
+    }
+}

+ 11 - 0
Unity/Assets/Mono/Core/Pool.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 27e312875644fc749813dc9c1f8b21e2
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 8
Unity/Assets/Mono/ILRuntime/Generate/CLRBindings.cs

@@ -36,10 +36,10 @@ namespace ILRuntime.Runtime.Generated
             ET_ListComponent_1_Vector3_Binding.Register(app);
             System_Collections_Generic_List_1_Single_Binding.Register(app);
             UnityEngine_Vector3_Binding.Register(app);
+            System_Collections_Generic_List_1_Vector3_Binding.Register(app);
             System_IDisposable_Binding.Register(app);
             UnityEngine_Quaternion_Binding.Register(app);
             ET_ETTaskCompleted_Binding.Register(app);
-            System_Collections_Generic_List_1_Vector3_Binding.Register(app);
             ET_ETAsyncTaskMethodBuilder_1_Boolean_Binding.Register(app);
             System_Action_1_Boolean_Binding.Register(app);
             System_Math_Binding.Register(app);
@@ -118,12 +118,6 @@ namespace ILRuntime.Runtime.Generated
             System_Collections_Generic_List_1_Action_Binding.Register(app);
             System_Collections_Generic_List_1_Action_Binding_Enumerator_Binding.Register(app);
             System_Action_Binding.Register(app);
-            System_Collections_Generic_SortedDictionary_2_Int64_List_1_Int64_Binding.Register(app);
-            System_Collections_Generic_SortedDictionary_2_Int64_List_1_Int64_Binding_Enumerator_Binding.Register(app);
-            System_Collections_Generic_KeyValuePair_2_Int64_List_1_Int64_Binding.Register(app);
-            System_Collections_Generic_Queue_1_Int64_Binding.Register(app);
-            ET_MultiMap_2_Int64_Int64_Binding.Register(app);
-            System_Collections_Generic_List_1_Int64_Binding_Enumerator_Binding.Register(app);
             System_Collections_Generic_HashSet_1_ILTypeInstance_Binding.Register(app);
             System_Collections_Generic_HashSet_1_ILTypeInstance_Binding_Enumerator_Binding.Register(app);
             System_Collections_Generic_Dictionary_2_Type_ILTypeInstance_Binding.Register(app);
@@ -144,6 +138,7 @@ namespace ILRuntime.Runtime.Generated
             System_Collections_Generic_Dictionary_2_String_Assembly_Binding.Register(app);
             System_Collections_Generic_Dictionary_2_String_Assembly_Binding_ValueCollection_Binding.Register(app);
             System_Collections_Generic_Dictionary_2_String_Assembly_Binding_ValueCollection_Binding_Enumerator_Binding.Register(app);
+            System_Collections_Generic_Queue_1_Int64_Binding.Register(app);
             System_Collections_Generic_List_1_Object_Binding_Enumerator_Binding.Register(app);
             ET_ObjectHelper_Binding.Register(app);
             System_Text_StringBuilder_Binding.Register(app);
@@ -161,6 +156,11 @@ namespace ILRuntime.Runtime.Generated
             ProtoBuf_Meta_RuntimeTypeModel_Binding.Register(app);
             ProtoBuf_Meta_TypeModel_Binding.Register(app);
             ProtoBuf_Serializer_Binding.Register(app);
+            System_Collections_Generic_SortedDictionary_2_Int64_List_1_Int64_Binding.Register(app);
+            System_Collections_Generic_SortedDictionary_2_Int64_List_1_Int64_Binding_Enumerator_Binding.Register(app);
+            System_Collections_Generic_KeyValuePair_2_Int64_List_1_Int64_Binding.Register(app);
+            ET_MultiMap_2_Int64_Int64_Binding.Register(app);
+            System_Collections_Generic_List_1_Int64_Binding_Enumerator_Binding.Register(app);
             UnityEngine_Vector2_Binding.Register(app);
             UnityEngine_Mathf_Binding.Register(app);
             System_Collections_Generic_Dictionary_2_Int32_ILTypeInstance_Binding_ValueCollection_Binding.Register(app);
@@ -223,8 +223,8 @@ namespace ILRuntime.Runtime.Generated
             System_Collections_Generic_KeyValuePair_2_String_Int32_Binding.Register(app);
             ET_ListComponent_1_ILTypeInstance_Binding.Register(app);
             ET_ListComponent_1_ETTask_Binding.Register(app);
-            ET_ETTaskHelper_Binding.Register(app);
             System_Collections_Generic_List_1_ETTask_Binding.Register(app);
+            ET_ETTaskHelper_Binding.Register(app);
             ET_ListComponent_1_String_Binding.Register(app);
             ET_ComponentView_Binding.Register(app);
             System_Collections_Generic_Queue_1_HashSet_1_ILTypeInstance_Binding.Register(app);

+ 0 - 87
Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_ETTask_Binding.cs

@@ -1,87 +0,0 @@
-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 ET_ListComponent_1_ETTask_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(ET.ListComponent<ET.ETTask>);
-            args = new Type[]{};
-            method = type.GetMethod("Create", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Create_0);
-            args = new Type[]{typeof(ET.ETTask)};
-            method = type.GetMethod("Add", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Add_1);
-            args = new Type[]{};
-            method = type.GetMethod("get_List", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, get_List_2);
-
-
-        }
-
-
-        static StackObject* Create_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
-        {
-            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
-            StackObject* __ret = ILIntepreter.Minus(__esp, 0);
-
-
-            var result_of_this_method = ET.ListComponent<ET.ETTask>.Create();
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-        static StackObject* Add_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, 2);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
-            ET.ETTask @t = (ET.ETTask)typeof(ET.ETTask).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
-            ET.ListComponent<ET.ETTask> instance_of_this_method = (ET.ListComponent<ET.ETTask>)typeof(ET.ListComponent<ET.ETTask>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            instance_of_this_method.Add(@t);
-
-            return __ret;
-        }
-
-        static StackObject* get_List_2(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);
-            ET.ListComponent<ET.ETTask> instance_of_this_method = (ET.ListComponent<ET.ETTask>)typeof(ET.ListComponent<ET.ETTask>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            var result_of_this_method = instance_of_this_method.List;
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-
-
-    }
-}

+ 0 - 65
Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_ILTypeInstance_Binding.cs

@@ -1,65 +0,0 @@
-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 ET_ListComponent_1_ILTypeInstance_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(ET.ListComponent<ILRuntime.Runtime.Intepreter.ILTypeInstance>);
-            args = new Type[]{};
-            method = type.GetMethod("Create", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Create_0);
-            args = new Type[]{};
-            method = type.GetMethod("get_List", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, get_List_1);
-
-
-        }
-
-
-        static StackObject* Create_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
-        {
-            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
-            StackObject* __ret = ILIntepreter.Minus(__esp, 0);
-
-
-            var result_of_this_method = ET.ListComponent<ILRuntime.Runtime.Intepreter.ILTypeInstance>.Create();
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-        static StackObject* get_List_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);
-            ET.ListComponent<ILRuntime.Runtime.Intepreter.ILTypeInstance> instance_of_this_method = (ET.ListComponent<ILRuntime.Runtime.Intepreter.ILTypeInstance>)typeof(ET.ListComponent<ILRuntime.Runtime.Intepreter.ILTypeInstance>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            var result_of_this_method = instance_of_this_method.List;
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-
-
-    }
-}

+ 0 - 83
Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_String_Binding.cs

@@ -1,83 +0,0 @@
-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 ET_ListComponent_1_String_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(ET.ListComponent<System.String>);
-            args = new Type[]{};
-            method = type.GetMethod("Create", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Create_0);
-            args = new Type[]{};
-            method = type.GetMethod("get_List", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, get_List_1);
-            args = new Type[]{};
-            method = type.GetMethod("Dispose", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Dispose_2);
-
-
-        }
-
-
-        static StackObject* Create_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
-        {
-            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
-            StackObject* __ret = ILIntepreter.Minus(__esp, 0);
-
-
-            var result_of_this_method = ET.ListComponent<System.String>.Create();
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-        static StackObject* get_List_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);
-            ET.ListComponent<System.String> instance_of_this_method = (ET.ListComponent<System.String>)typeof(ET.ListComponent<System.String>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            var result_of_this_method = instance_of_this_method.List;
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-        static StackObject* Dispose_2(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);
-            ET.ListComponent<System.String> instance_of_this_method = (ET.ListComponent<System.String>)typeof(ET.ListComponent<System.String>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            instance_of_this_method.Dispose();
-
-            return __ret;
-        }
-
-
-
-    }
-}

+ 0 - 87
Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_Task_Binding.cs

@@ -1,87 +0,0 @@
-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 ET_ListComponent_1_Task_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(ET.ListComponent<System.Threading.Tasks.Task>);
-            args = new Type[]{};
-            method = type.GetMethod("Create", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Create_0);
-            args = new Type[]{typeof(System.Threading.Tasks.Task)};
-            method = type.GetMethod("Add", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Add_1);
-            args = new Type[]{};
-            method = type.GetMethod("get_List", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, get_List_2);
-
-
-        }
-
-
-        static StackObject* Create_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
-        {
-            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
-            StackObject* __ret = ILIntepreter.Minus(__esp, 0);
-
-
-            var result_of_this_method = ET.ListComponent<System.Threading.Tasks.Task>.Create();
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-        static StackObject* Add_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, 2);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
-            System.Threading.Tasks.Task @t = (System.Threading.Tasks.Task)typeof(System.Threading.Tasks.Task).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
-            ET.ListComponent<System.Threading.Tasks.Task> instance_of_this_method = (ET.ListComponent<System.Threading.Tasks.Task>)typeof(ET.ListComponent<System.Threading.Tasks.Task>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            instance_of_this_method.Add(@t);
-
-            return __ret;
-        }
-
-        static StackObject* get_List_2(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);
-            ET.ListComponent<System.Threading.Tasks.Task> instance_of_this_method = (ET.ListComponent<System.Threading.Tasks.Task>)typeof(ET.ListComponent<System.Threading.Tasks.Task>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            var result_of_this_method = instance_of_this_method.List;
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-
-
-    }
-}

+ 0 - 87
Unity/Assets/Mono/ILRuntime/Generate/ET_ListComponent_1_Vector3_Binding.cs

@@ -1,87 +0,0 @@
-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 ET_ListComponent_1_Vector3_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(ET.ListComponent<UnityEngine.Vector3>);
-            args = new Type[]{};
-            method = type.GetMethod("Create", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Create_0);
-            args = new Type[]{typeof(UnityEngine.Vector3)};
-            method = type.GetMethod("Add", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Add_1);
-            args = new Type[]{};
-            method = type.GetMethod("get_List", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, get_List_2);
-
-
-        }
-
-
-        static StackObject* Create_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
-        {
-            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
-            StackObject* __ret = ILIntepreter.Minus(__esp, 0);
-
-
-            var result_of_this_method = ET.ListComponent<UnityEngine.Vector3>.Create();
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-        static StackObject* Add_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, 2);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
-            UnityEngine.Vector3 @t = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
-            ET.ListComponent<UnityEngine.Vector3> instance_of_this_method = (ET.ListComponent<UnityEngine.Vector3>)typeof(ET.ListComponent<UnityEngine.Vector3>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            instance_of_this_method.Add(@t);
-
-            return __ret;
-        }
-
-        static StackObject* get_List_2(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);
-            ET.ListComponent<UnityEngine.Vector3> instance_of_this_method = (ET.ListComponent<UnityEngine.Vector3>)typeof(ET.ListComponent<UnityEngine.Vector3>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            var result_of_this_method = instance_of_this_method.List;
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-
-
-    }
-}

+ 24 - 2
Unity/Assets/Mono/ILRuntime/Generate/System_Collections_Generic_List_1_ETTask_Binding.cs

@@ -22,15 +22,37 @@ namespace ILRuntime.Runtime.Generated
             MethodBase method;
             Type[] args;
             Type type = typeof(System.Collections.Generic.List<ET.ETTask>);
+            args = new Type[]{typeof(ET.ETTask)};
+            method = type.GetMethod("Add", flag, null, args, null);
+            app.RegisterCLRMethodRedirection(method, Add_0);
             args = new Type[]{};
             method = type.GetMethod("Clear", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Clear_0);
+            app.RegisterCLRMethodRedirection(method, Clear_1);
 
 
         }
 
 
-        static StackObject* Clear_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Add_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, 2);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
+            ET.ETTask @item = (ET.ETTask)typeof(ET.ETTask).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
+            System.Collections.Generic.List<ET.ETTask> instance_of_this_method = (System.Collections.Generic.List<ET.ETTask>)typeof(System.Collections.Generic.List<ET.ETTask>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            instance_of_this_method.Add(@item);
+
+            return __ret;
+        }
+
+        static StackObject* Clear_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;

+ 24 - 2
Unity/Assets/Mono/ILRuntime/Generate/System_Collections_Generic_List_1_Task_Binding.cs

@@ -22,15 +22,37 @@ namespace ILRuntime.Runtime.Generated
             MethodBase method;
             Type[] args;
             Type type = typeof(System.Collections.Generic.List<System.Threading.Tasks.Task>);
+            args = new Type[]{typeof(System.Threading.Tasks.Task)};
+            method = type.GetMethod("Add", flag, null, args, null);
+            app.RegisterCLRMethodRedirection(method, Add_0);
             args = new Type[]{};
             method = type.GetMethod("ToArray", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, ToArray_0);
+            app.RegisterCLRMethodRedirection(method, ToArray_1);
 
 
         }
 
 
-        static StackObject* ToArray_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Add_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, 2);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
+            System.Threading.Tasks.Task @item = (System.Threading.Tasks.Task)typeof(System.Threading.Tasks.Task).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
+            System.Collections.Generic.List<System.Threading.Tasks.Task> instance_of_this_method = (System.Collections.Generic.List<System.Threading.Tasks.Task>)typeof(System.Collections.Generic.List<System.Threading.Tasks.Task>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            instance_of_this_method.Add(@item);
+
+            return __ret;
+        }
+
+        static StackObject* ToArray_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;

+ 26 - 26
Unity/Assets/Mono/ILRuntime/Generate/System_Collections_Generic_List_1_Vector3_Binding.cs

@@ -22,18 +22,18 @@ namespace ILRuntime.Runtime.Generated
             MethodBase method;
             Type[] args;
             Type type = typeof(System.Collections.Generic.List<UnityEngine.Vector3>);
+            args = new Type[]{typeof(UnityEngine.Vector3)};
+            method = type.GetMethod("Add", flag, null, args, null);
+            app.RegisterCLRMethodRedirection(method, Add_0);
             args = new Type[]{};
             method = type.GetMethod("Clear", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Clear_0);
+            app.RegisterCLRMethodRedirection(method, Clear_1);
             args = new Type[]{};
             method = type.GetMethod("get_Count", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, get_Count_1);
+            app.RegisterCLRMethodRedirection(method, get_Count_2);
             args = new Type[]{typeof(System.Int32)};
             method = type.GetMethod("get_Item", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, get_Item_2);
-            args = new Type[]{typeof(UnityEngine.Vector3)};
-            method = type.GetMethod("Add", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Add_3);
+            app.RegisterCLRMethodRedirection(method, get_Item_3);
             args = new Type[]{};
             method = type.GetMethod("GetEnumerator", flag, null, args, null);
             app.RegisterCLRMethodRedirection(method, GetEnumerator_4);
@@ -45,22 +45,26 @@ namespace ILRuntime.Runtime.Generated
         }
 
 
-        static StackObject* Clear_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Add_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);
+            StackObject* __ret = ILIntepreter.Minus(__esp, 2);
 
             ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
+            UnityEngine.Vector3 @item = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
             System.Collections.Generic.List<UnityEngine.Vector3> instance_of_this_method = (System.Collections.Generic.List<UnityEngine.Vector3>)typeof(System.Collections.Generic.List<UnityEngine.Vector3>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
             __intp.Free(ptr_of_this_method);
 
-            instance_of_this_method.Clear();
+            instance_of_this_method.Add(@item);
 
             return __ret;
         }
 
-        static StackObject* get_Count_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Clear_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;
@@ -70,48 +74,44 @@ namespace ILRuntime.Runtime.Generated
             System.Collections.Generic.List<UnityEngine.Vector3> instance_of_this_method = (System.Collections.Generic.List<UnityEngine.Vector3>)typeof(System.Collections.Generic.List<UnityEngine.Vector3>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
             __intp.Free(ptr_of_this_method);
 
-            var result_of_this_method = instance_of_this_method.Count;
+            instance_of_this_method.Clear();
 
-            __ret->ObjectType = ObjectTypes.Integer;
-            __ret->Value = result_of_this_method;
-            return __ret + 1;
+            return __ret;
         }
 
-        static StackObject* get_Item_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* get_Count_2(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, 2);
+            StackObject* __ret = ILIntepreter.Minus(__esp, 1);
 
             ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
-            System.Int32 @index = ptr_of_this_method->Value;
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
             System.Collections.Generic.List<UnityEngine.Vector3> instance_of_this_method = (System.Collections.Generic.List<UnityEngine.Vector3>)typeof(System.Collections.Generic.List<UnityEngine.Vector3>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
             __intp.Free(ptr_of_this_method);
 
-            var result_of_this_method = instance_of_this_method[index];
+            var result_of_this_method = instance_of_this_method.Count;
 
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
+            __ret->ObjectType = ObjectTypes.Integer;
+            __ret->Value = result_of_this_method;
+            return __ret + 1;
         }
 
-        static StackObject* Add_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* get_Item_3(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, 2);
 
             ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
-            UnityEngine.Vector3 @item = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
+            System.Int32 @index = ptr_of_this_method->Value;
 
             ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
             System.Collections.Generic.List<UnityEngine.Vector3> instance_of_this_method = (System.Collections.Generic.List<UnityEngine.Vector3>)typeof(System.Collections.Generic.List<UnityEngine.Vector3>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
             __intp.Free(ptr_of_this_method);
 
-            instance_of_this_method.Add(@item);
+            var result_of_this_method = instance_of_this_method[index];
 
-            return __ret;
+            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
         }
 
         static StackObject* GetEnumerator_4(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)

+ 40 - 40
Unity/Assets/Mono/ILRuntime/Generate/System_String_Binding.cs

@@ -25,24 +25,24 @@ namespace ILRuntime.Runtime.Generated
             args = new Type[]{typeof(System.String), typeof(System.Object)};
             method = type.GetMethod("Format", flag, null, args, null);
             app.RegisterCLRMethodRedirection(method, Format_0);
-            args = new Type[]{typeof(System.String), typeof(System.Object), typeof(System.Object), typeof(System.Object)};
-            method = type.GetMethod("Format", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Format_1);
             args = new Type[]{typeof(System.String), typeof(System.Object), typeof(System.Object)};
             method = type.GetMethod("Format", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Format_2);
+            app.RegisterCLRMethodRedirection(method, Format_1);
             args = new Type[]{typeof(System.String), typeof(System.String)};
             method = type.GetMethod("Concat", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Concat_3);
+            app.RegisterCLRMethodRedirection(method, Concat_2);
             args = new Type[]{typeof(System.String), typeof(System.String), typeof(System.String)};
             method = type.GetMethod("Concat", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Concat_4);
+            app.RegisterCLRMethodRedirection(method, Concat_3);
             args = new Type[]{typeof(System.String), typeof(System.Object[])};
             method = type.GetMethod("Format", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Format_5);
+            app.RegisterCLRMethodRedirection(method, Format_4);
             args = new Type[]{typeof(System.String), typeof(System.String), typeof(System.String), typeof(System.String)};
             method = type.GetMethod("Concat", flag, null, args, null);
-            app.RegisterCLRMethodRedirection(method, Concat_6);
+            app.RegisterCLRMethodRedirection(method, Concat_5);
+            args = new Type[]{typeof(System.String), typeof(System.Object), typeof(System.Object), typeof(System.Object)};
+            method = type.GetMethod("Format", flag, null, args, null);
+            app.RegisterCLRMethodRedirection(method, Format_6);
             args = new Type[]{typeof(System.String)};
             method = type.GetMethod("IsNullOrEmpty", flag, null, args, null);
             app.RegisterCLRMethodRedirection(method, IsNullOrEmpty_7);
@@ -86,34 +86,6 @@ namespace ILRuntime.Runtime.Generated
         }
 
         static StackObject* Format_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, 4);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
-            System.Object @arg2 = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
-            System.Object @arg1 = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
-            System.Object @arg0 = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
-            __intp.Free(ptr_of_this_method);
-
-            ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
-            System.String @format = (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 = System.String.Format(@format, @arg0, @arg1, @arg2);
-
-            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
-        }
-
-        static StackObject* Format_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;
@@ -137,7 +109,7 @@ namespace ILRuntime.Runtime.Generated
             return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
         }
 
-        static StackObject* Concat_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Concat_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;
@@ -157,7 +129,7 @@ namespace ILRuntime.Runtime.Generated
             return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
         }
 
-        static StackObject* Concat_4(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Concat_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;
@@ -181,7 +153,7 @@ namespace ILRuntime.Runtime.Generated
             return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
         }
 
-        static StackObject* Format_5(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Format_4(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;
@@ -201,7 +173,7 @@ namespace ILRuntime.Runtime.Generated
             return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
         }
 
-        static StackObject* Concat_6(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
+        static StackObject* Concat_5(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
             StackObject* ptr_of_this_method;
@@ -229,6 +201,34 @@ namespace ILRuntime.Runtime.Generated
             return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
         }
 
+        static StackObject* Format_6(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, 4);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
+            System.Object @arg2 = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
+            System.Object @arg1 = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
+            System.Object @arg0 = (System.Object)typeof(System.Object).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack));
+            __intp.Free(ptr_of_this_method);
+
+            ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
+            System.String @format = (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 = System.String.Format(@format, @arg0, @arg1, @arg2);
+
+            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
+        }
+
         static StackObject* IsNullOrEmpty_7(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
         {
             ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;

+ 1 - 1
Unity/Codes/Hotfix/Demo/Move/M2C_PathfindingResultHandler.cs

@@ -19,7 +19,7 @@ namespace ET
 					list.Add(new Vector3(message.Xs[i], message.Ys[i], message.Zs[i]));
 				}
 
-				await unit.GetComponent<MoveComponent>().MoveToAsync(list.List, speed);
+				await unit.GetComponent<MoveComponent>().MoveToAsync(list, speed);
 			}
 		}
 	}

+ 1 - 1
Unity/Codes/Hotfix/Demo/Move/MoveComponentSystem.cs

@@ -76,7 +76,7 @@ namespace ET
                 {
                     path.Add(self.Targets[i]);
                 }
-                self.MoveToAsync(path.List, speed).Coroutine();
+                self.MoveToAsync(path, speed).Coroutine();
             }
             return true;
         }

+ 1 - 1
Unity/Codes/Hotfix/Module/Config/ConfigComponentSystem.cs

@@ -63,7 +63,7 @@ namespace ET
 					listTasks.Add(task);
 				}
 
-				await Task.WhenAll(listTasks.List.ToArray());
+				await Task.WhenAll(listTasks.ToArray());
 			}
 		}
 

+ 1 - 1
Unity/Codes/Model/Core/Object/EventSystem.cs

@@ -582,7 +582,7 @@ namespace ET
 
                 try
                 {
-                    await ETTaskHelper.WaitAll(list.List);
+                    await ETTaskHelper.WaitAll(list);
                 }
                 catch (Exception e)
                 {

+ 5 - 5
Unity/Codes/ModelView/Demo/Resource/ResourcesComponent.cs

@@ -488,17 +488,17 @@ namespace ET
                 {
                     foreach (string dependency in dependencies)
                     {
-                        tasks.Add(LoadDependency(dependency, abInfos.List));
+                        tasks.Add(LoadDependency(dependency, abInfos));
                     }
-                    await ETTaskHelper.WaitAll(tasks.List);
+                    await ETTaskHelper.WaitAll(tasks);
 
                     // ab包从硬盘加载完成,可以再并发加载all assets
-                    tasks.List.Clear();
-                    foreach (ABInfo abInfo in abInfos.List)
+                    tasks.Clear();
+                    foreach (ABInfo abInfo in abInfos)
                     {
                         tasks.Add(LoadOneBundleAllAssets(abInfo));
                     }
-                    await ETTaskHelper.WaitAll(tasks.List);
+                    await ETTaskHelper.WaitAll(tasks);
                 }
             }
         }

+ 2 - 2
Unity/Codes/ModelView/Demo/Resource/ResourcesLoaderComponent.cs

@@ -12,13 +12,13 @@ namespace ET
                 ListComponent<string> list = ListComponent<string>.Create();
                 try
                 {
-                    list.List.AddRange(self.LoadedResource);
+                    list.AddRange(self.LoadedResource);
                     self.LoadedResource = null;
 
                     // 延迟5秒卸载包,因为包卸载是引用技术,5秒之内假如重新有逻辑加载了这个包,那么可以避免一次卸载跟加载
                     await TimerComponent.Instance.WaitAsync(5000);
 
-                    foreach (string abName in list.List)
+                    foreach (string abName in list)
                     {
                         CoroutineLock coroutineLock = null;
                         try

+ 1 - 0
Unity/Unity.Mono.csproj

@@ -323,6 +323,7 @@
      <Compile Include="Assets\Mono\ILRuntime\Generate\UnityEngine_Quaternion_Binding.cs" />
      <Compile Include="Assets\Mono\ILRuntime\Generate\System_Collections_Generic_HashSet_1_AService_Binding_Enumerator_Bind.cs" />
      <Compile Include="Assets\Mono\Define.cs" />
+     <Compile Include="Assets\Mono\Core\Pool.cs" />
      <None Include="Assets\Mono\Unity.Mono.asmdef" />
      <Reference Include="UnityEngine">
      <HintPath>C:/Apps/Unity/2020.3.23f1c1/Editor/Data/Managed/UnityEngine/UnityEngine.dll</HintPath>