泛型方法我有一個類查找靜態類
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();
}
}
和一幫更爲複雜的過載。 現在我想用
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
擴展類(因爲我想,如果從PowerShell來調用)始終爲空。這是通過GetMethod()
獲得我的特定方法的正確方法。
什麼是'table'變量?你的意思是'typeName'嗎? –
這些方法是實例方法還是靜態方法? –
'不能在靜態類中聲明實例成員'。 –