MonoMethod.cs 848 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using System.Reflection;
  3. using Model;
  4. namespace Model
  5. {
  6. public class MonoInstanceMethod : IInstanceMethod
  7. {
  8. private readonly object instance;
  9. private readonly MethodInfo methodInfo;
  10. public MonoInstanceMethod(Type type, string methodName)
  11. {
  12. this.Name = methodName;
  13. this.instance = Activator.CreateInstance(type);
  14. this.methodInfo = type.GetMethod(methodName);
  15. }
  16. public override void Run(params object[] param)
  17. {
  18. this.methodInfo.Invoke(this.instance, param);
  19. }
  20. }
  21. public class MonoStaticMethod : IStaticMethod
  22. {
  23. private readonly MethodInfo methodInfo;
  24. public MonoStaticMethod(MethodInfo methodInfo)
  25. {
  26. this.methodInfo = methodInfo;
  27. this.Name = methodInfo.Name;
  28. }
  29. public override void Run(object instance, params object[] param)
  30. {
  31. this.methodInfo.Run(instance, param);
  32. }
  33. }
  34. }