上の一般的な方法を見つけ、私はクラス静的クラス
public static class MyClass
{
public static T MyMethod<T>(T item) where T : ISomeInterface<T>, new
{
return MyMethod(new[] { item}).First();
}
public static IEnumerable<T> MyMethod<T>(params T[] items) where T : ISomeInterface<T>, new
{
// for simplicity
return items.ToList();
}
}
と、より複雑なオーバーロードの束を持っています。 は、今私は(私はPowerShellのからの場合呼び出したいので)
public static IEnumerable MyMethod(string typeName, params object[] items)
{
var type = Type.GetType(typeName, true, true);
var paramTypes = new Type[] { type.MakeArrayType() };
var method = typeof(MyClass).GetMethod(
"MyMethod", BindingFlags.Public | BindingFlags.Static
| BindingFlags.IgnoreCase, null, paramTypes, null);
return method.Invoke(null, new object[] { items });
}
を持つクラスを拡張したい。しかしmethod
は常にnullです。 GetMethod()
経由で私の具体的な方法を得る正しい方法はどれですか。
'table'変数がどのようなものですあなたはまだこのような方法で
MakeGenericMethod
を呼び出すことによって、閉じたバージョンを作成する必要がありますか?代わりに 'typeName'を意味しますか? –これらのメソッドのインスタンスメソッドまたは静的メソッドはありますか? –
'静的クラスのインスタンスメンバーを宣言できません '。 –