using System; using ILRuntime.CLR.Method; using ILRuntime.Runtime.Enviorment; using ILRuntime.Runtime.Intepreter; namespace ILCrossBinding { public class OperationBaseAdapter : CrossBindingAdaptor { static CrossBindingFunctionInfo mIndexOfTime_0 = new CrossBindingFunctionInfo("IndexOfTime"); static CrossBindingFunctionInfo mToDisplayTime_1 = new CrossBindingFunctionInfo("ToDisplayTime"); static CrossBindingMethodInfo mReset_2 = new CrossBindingMethodInfo("Reset"); static CrossBindingFunctionInfo mSatisfyOpenCondition_3 = new CrossBindingFunctionInfo("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; } } } }