You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
using System; |
|
using System.Reflection; |
|
|
|
namespace ET |
|
{ |
|
public class MonoStaticMethod : IStaticMethod |
|
{ |
|
private readonly MethodInfo methodInfo; |
|
|
|
private readonly object[] param; |
|
|
|
public MonoStaticMethod(Assembly assembly, string typeName, string methodName) |
|
{ |
|
this.methodInfo = assembly.GetType(typeName).GetMethod(methodName); |
|
this.param = new object[this.methodInfo.GetParameters().Length]; |
|
} |
|
|
|
public override void Run() |
|
{ |
|
this.methodInfo.Invoke(null, param); |
|
} |
|
|
|
public override void Run(object a) |
|
{ |
|
this.param[0] = a; |
|
this.methodInfo.Invoke(null, param); |
|
} |
|
|
|
public override void Run(object a, object b) |
|
{ |
|
this.param[0] = a; |
|
this.param[1] = b; |
|
this.methodInfo.Invoke(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.methodInfo.Invoke(null, param); |
|
} |
|
} |
|
} |
|
|
|
|