少年修仙传客户端基础资源
lwb
2021-03-04 d987a4cd8a97ea7378a814f21712fef7b027b3f3
9527 新增跨域继承适配器
2个文件已添加
110 ■■■■■ 已修改文件
Assets/ILRuntime/Src/Inheritance/OperationBaseAdapter.cs 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ILRuntime/Src/Inheritance/OperationBaseAdapter.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ILRuntime/Src/Inheritance/OperationBaseAdapter.cs
New file
@@ -0,0 +1,99 @@
using System;
using ILRuntime.CLR.Method;
using ILRuntime.Runtime.Enviorment;
using ILRuntime.Runtime.Intepreter;
namespace ILCrossBinding
{
    public class OperationBaseAdapter : CrossBindingAdaptor
    {
        static CrossBindingFunctionInfo<System.DateTime, System.Int32, System.Int32> mIndexOfTime_0 = new CrossBindingFunctionInfo<System.DateTime, System.Int32, System.Int32>("IndexOfTime");
        static CrossBindingFunctionInfo<System.String> mToDisplayTime_1 = new CrossBindingFunctionInfo<System.String>("ToDisplayTime");
        static CrossBindingMethodInfo mReset_2 = new CrossBindingMethodInfo("Reset");
        static CrossBindingFunctionInfo<System.Boolean> mSatisfyOpenCondition_3 = new CrossBindingFunctionInfo<System.Boolean>("SatisfyOpenCondition");
        public override Type BaseCLRType
        {
            get
            {
                return typeof(Snxxz.UI.OperationBase);
            }
        }
        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 : Snxxz.UI.OperationBase, 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; } }
            protected override System.Int32 IndexOfTime(System.DateTime time, System.Int32 compare)
            {
                if (mIndexOfTime_0.CheckShouldInvokeBase(this.instance))
                    return base.IndexOfTime(time, compare);
                else
                    return mIndexOfTime_0.Invoke(this.instance, time, compare);
            }
            public override System.String ToDisplayTime()
            {
                if (mToDisplayTime_1.CheckShouldInvokeBase(this.instance))
                    return base.ToDisplayTime();
                else
                    return mToDisplayTime_1.Invoke(this.instance);
            }
            public override void Reset()
            {
                if (mReset_2.CheckShouldInvokeBase(this.instance))
                    base.Reset();
                else
                    mReset_2.Invoke(this.instance);
            }
            public override System.Boolean SatisfyOpenCondition()
            {
                if (mSatisfyOpenCondition_3.CheckShouldInvokeBase(this.instance))
                    return base.SatisfyOpenCondition();
                else
                    return mSatisfyOpenCondition_3.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;
            }
        }
    }
}
Assets/ILRuntime/Src/Inheritance/OperationBaseAdapter.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2cc212ec2cfce3b4b8c78eb9ae1719cd
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: