我试图弄清楚如何访问CallMe<T>()
class中的静态方法DoSomething
。反射是这里唯一的解决方案吗?我不想实例化类型的对象MyAction
。另外,如果通过反射进行,是否有一种方法可以通过方法内的反射创建方法CallMe<T>()
一次,然后多次调用它以对同一个“反射”方法执行多个操作?或者有什么比通过反射更好的方法吗?我基本上想创建模板实现样式类,例如MyAction
定义如何byte[] DoThis(string text)
执行其职责的类。然后,AskForSomething()
遗嘱指定正在使用哪个模板,并根据该模板进行CallMe<T>()
工作。
public class AskSomething
{
public void AskForSomething()
{
DoSomething doSomething = new DoSomething();
doSomething.CallMe<MyAction>();
}
}
public class DoSomething
{
public void CallMe<T>()
{
Type type = typeof(T);
//Question: How can I access 'DoThis(string text)' here?
//Most likely by reflection?
}
}
public class MyAction
{
public static byte[] DoThis(string text)
{
byte[] ret = new byte[0]; //mock just to denote something is done and out comes a byte array
return ret;
}
}