ILStaticMethod.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using ILRuntime.CLR.Method;
  2. namespace ETModel
  3. {
  4. public class ILStaticMethod : IStaticMethod
  5. {
  6. private readonly ILRuntime.Runtime.Enviorment.AppDomain appDomain;
  7. private readonly IMethod method;
  8. private readonly object[] param;
  9. public ILStaticMethod(ILRuntime.Runtime.Enviorment.AppDomain appDomain, string typeName, string methodName, int paramsCount)
  10. {
  11. this.appDomain = appDomain;
  12. this.method = appDomain.GetType(typeName).GetMethod(methodName, paramsCount);
  13. this.param = new object[paramsCount];
  14. }
  15. public override void Run()
  16. {
  17. this.appDomain.Invoke(this.method, null, this.param);
  18. }
  19. public override void Run(object a)
  20. {
  21. this.param[0] = a;
  22. this.appDomain.Invoke(this.method, null, param);
  23. }
  24. public override void Run(object a, object b)
  25. {
  26. this.param[0] = a;
  27. this.param[1] = b;
  28. this.appDomain.Invoke(this.method, null, param);
  29. }
  30. public override void Run(object a, object b, object c)
  31. {
  32. this.param[0] = a;
  33. this.param[1] = b;
  34. this.param[2] = c;
  35. this.appDomain.Invoke(this.method, null, param);
  36. }
  37. }
  38. }