ILStaticMethod.cs 1.3 KB

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