From da6274c5876960712c91ed854adb20c90b3d47f4 Mon Sep 17 00:00:00 2001
From: lwb <q3213421wrwqr>
Date: 星期二, 09 三月 2021 16:05:21 +0800
Subject: [PATCH] 9527 增加一个跨域适配器

---
 Assets/ILRuntime/Editor/ILRuntimeCrossBinding.cs                   |    2 
 Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs.meta |   11 +++++
 Assets/ILRuntime/Src/ILBehaviourProxy.cs                           |    3 -
 Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs      |   69 ++++++++++++++++++++++++++++++++++
 4 files changed, 82 insertions(+), 3 deletions(-)

diff --git a/Assets/ILRuntime/Editor/ILRuntimeCrossBinding.cs b/Assets/ILRuntime/Editor/ILRuntimeCrossBinding.cs
index 9431c28..5200519 100644
--- a/Assets/ILRuntime/Editor/ILRuntimeCrossBinding.cs
+++ b/Assets/ILRuntime/Editor/ILRuntimeCrossBinding.cs
@@ -11,7 +11,7 @@
         EditorWindow.GetWindow<ILRuntimeCrossBinding>("鐢熸垚璺ㄥ煙缁ф壙閫傞厤鍣�").Show();
     }
 
-    Type type = typeof(Snxxz.UI.OperationBase);
+    Type type = typeof(IConfigPostProcess);
 
     private void OnGUI()
     {
diff --git a/Assets/ILRuntime/Src/ILBehaviourProxy.cs b/Assets/ILRuntime/Src/ILBehaviourProxy.cs
index d2db742..f28e34b 100644
--- a/Assets/ILRuntime/Src/ILBehaviourProxy.cs
+++ b/Assets/ILRuntime/Src/ILBehaviourProxy.cs
@@ -14,8 +14,7 @@
     [Tooltip("Logic宸ョ▼鐨勪唬鐮侊紝渚嬶細鍛藉悕绌洪棿.绫诲悕")]
     List<string> classNames;
     Dictionary<string, ILBehaviourHolder> ilBehaviourHolders = new Dictionary<string, ILBehaviourHolder>();
-    AppDomain appDomain
-    {
+    AppDomain appDomain {
         get { return ILLauncherProxy.Instance.appdomain; }
     }
 
diff --git a/Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs b/Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs
new file mode 100644
index 0000000..bd162fc
--- /dev/null
+++ b/Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs
@@ -0,0 +1,69 @@
+using System;
+using ILRuntime.CLR.Method;
+using ILRuntime.Runtime.Enviorment;
+using ILRuntime.Runtime.Intepreter;
+
+namespace ILCrossBinding
+{   
+    public class IConfigPostProcessAdapter : CrossBindingAdaptor
+    {
+        static CrossBindingMethodInfo mOnConfigParseCompleted_0 = new CrossBindingMethodInfo("OnConfigParseCompleted");
+        public override Type BaseCLRType
+        {
+            get
+            {
+                return typeof(global::IConfigPostProcess);
+            }
+        }
+
+        public override Type AdaptorType
+        {
+            get
+            {
+                return typeof(Adapter);
+            }
+        }
+
+        public override object CreateCLRInstance(ILRuntime.Runtime.Enviorment.AppDomain appdomain, ILTypeInstance instance)
+        {
+            return new Adapter(appdomain, instance);
+        }
+
+        public class Adapter : global::IConfigPostProcess, CrossBindingAdaptorType
+        {
+            ILTypeInstance instance;
+            ILRuntime.Runtime.Enviorment.AppDomain appdomain;
+
+            public Adapter()
+            {
+
+            }
+
+            public Adapter(ILRuntime.Runtime.Enviorment.AppDomain appdomain, ILTypeInstance instance)
+            {
+                this.appdomain = appdomain;
+                this.instance = instance;
+            }
+
+            public ILTypeInstance ILInstance { get { return instance; } }
+
+            public void OnConfigParseCompleted()
+            {
+                mOnConfigParseCompleted_0.Invoke(this.instance);
+            }
+
+            public override string ToString()
+            {
+                IMethod m = appdomain.ObjectType.GetMethod("ToString", 0);
+                m = instance.Type.GetVirtualMethod(m);
+                if (m == null || m is ILMethod)
+                {
+                    return instance.ToString();
+                }
+                else
+                    return instance.Type.FullName;
+            }
+        }
+    }
+}
+
diff --git a/Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs.meta b/Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs.meta
new file mode 100644
index 0000000..c2bf6f0
--- /dev/null
+++ b/Assets/ILRuntime/Src/Inheritance/IConfigPostProcessAdapter.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c5967f89ca472ae40b1417d5a69a7169
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.8.0