汎用メソッドの2つのオーバーロードを含むこの型を持っています。私はリフレクションを使用してオーバーロードの1つ(Func<T>
パラメータ)を取得するのが好きです。しかし問題は、Type.GetMethod(string, Type[])
メソッドを提供するための正しいパラメータタイプが見つからないことです。ここで汎用メソッドの正しいオーバーロードのMethodInfoの取得
は私のクラスの定義です:
public class Foo
{
public void Bar<T>(Func<T> f) { }
public void Bar<T>(Action<T> a) { }
}
そして、これは私は残念ながら大成功せず、作ってみたものです:
[TestMethod]
public void Test1()
{
Type parameterType = typeof(Func<>);
var method = typeof(Foo).GetMethod("Bar", new Type[] { parameterType });
Assert.IsNotNull(method); // Fails
}
にはどうすればいいの一般的な方法のMethodInfo
を得ることができます私はパラメータを知っていますか?あなたはMethodInfo.MakeGenericMethod.
を使用して、具体的な型を指定する必要があり
うわー。それはクールです。よく働く!そして少しのコード。 – Anne