| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- using System;
- using ILRuntime.CLR.Method;
- using ILRuntime.Runtime.Intepreter;
- namespace Model
- {
- public class ILInstanceMethod : IInstanceMethod
- {
- private readonly ILRuntime.Runtime.Enviorment.AppDomain appDomain;
- private readonly ILTypeInstance instance;
- private readonly IMethod method;
- private readonly object[] param;
- public ILInstanceMethod(Type type, string methodName)
- {
- appDomain = Init.Instance.AppDomain;
- this.instance = this.appDomain.Instantiate(type.FullName);
- this.method = this.instance.Type.GetMethod(methodName);
- int n = this.method.ParameterCount;
- this.param = new object[n];
- }
- public override void Run()
- {
- this.appDomain.Invoke(this.method, this.instance, param);
- }
- public override void Run(object a)
- {
- this.param[0] = a;
- this.appDomain.Invoke(this.method, this.instance, param);
- }
- public override void Run(object a, object b)
- {
- this.param[0] = a;
- this.param[1] = b;
- this.appDomain.Invoke(this.method, this.instance, param);
- }
- public override void Run(object a, object b, object c)
- {
- this.param[0] = a;
- this.param[1] = b;
- this.param[2] = c;
- this.appDomain.Invoke(this.method, this.instance, param);
- }
- }
- public class ILStaticMethod : IStaticMethod
- {
- private readonly ILRuntime.Runtime.Enviorment.AppDomain appDomain;
- private readonly IMethod method;
- private readonly object[] param;
- public ILStaticMethod(string typeName, string methodName, int paramsCount)
- {
- appDomain = Init.Instance.AppDomain;
- this.method = appDomain.GetType(typeName).GetMethod(methodName, paramsCount);
- this.param = new object[paramsCount];
- }
- public override void Run()
- {
- this.appDomain.Invoke(this.method, null, this.param);
- }
- public override void Run(object a)
- {
- this.param[0] = a;
- this.appDomain.Invoke(this.method, null, param);
- }
- public override void Run(object a, object b)
- {
- this.param[0] = a;
- this.param[1] = b;
- this.appDomain.Invoke(this.method, null, param);
- }
- public override void Run(object a, object b, object c)
- {
- this.param[0] = a;
- this.param[1] = b;
- this.param[2] = c;
- this.appDomain.Invoke(this.method, null, param);
- }
- }
- }
|