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