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;
}
}