我有以下兩個功能:C#的動態方法調用的泛型函數
public class MyClass
{
public void Save<TObject>(TObject object) where TObject : class
{
}
public void Save<TObject>(TObject object, String strValue) where TObject : class
{
}
}
我希望能夠動態調用首先保存類似的功能如下:
public void DoSomething<T>(String strMethod) where T : class
{
T myObject = Activator.CreateInstance<T>();
MyClass.GetType().GetMethod(strMethod, new Type[] { typeof(T) }).MakeGenericMethod(typeof(T)).Invoke(null, new[] { myObject });
}
不幸的是,當我這樣做時,它無法匹配第一個保存功能。如果我刪除了new Type[] { typeof(T) }
,我就陷入了一個模棱兩可的問題。我錯過了什麼?
Marc,工作很棒!我唯一需要做的就是調用(MyClass,...),而不是.Invoke(null,因爲下面提到的是,我得到了一個非靜態的方法錯誤,否則, – wigs 2012-01-19 17:20:45