也許,你得到的例外是MissingMethodException。 也許下面的控制檯應用程序可以指導你走向一個更具體的實施,但邏輯應該是相同的:
class Program
{
/// <summary>
/// a dictionary for holding the desired return values
/// </summary>
static Dictionary<string, object> _testReturnValues = new Dictionary<string, object>();
static void Main(string[] args)
{
// adding the test return for method X
_testReturnValues.Add("X", true);
var result = ExecuteMethod(typeof(MyClass), "X");
Console.WriteLine(result);
}
static object ExecuteMethod(Type type, string methodName)
{
try
{
return type.InvokeMember(methodName, BindingFlags.InvokeMethod, null, null, null);
}
catch (MissingMethodException e)
{
// getting the test value if the method is missing
return _testReturnValues[methodName];
}
}
}
class MyClass
{
//public static string X()
//{
// return "Sample return";
//}
}
你可以尋找到一個依賴注入(DI),如[Ninject(HTTP框架:// WWW .ninject.org /)將解決這類問題。 – Jay
對於MethodNotFoundException,你不能做一個捕獲嗎?您期待在某些情況下會發生這種情況,您可以在其中包含您的自定義邏輯。 – Mez
我認爲你在這裏的語言是錯誤的... – millimoose