我有一個WCF服務,它接受一個對象作爲具有URI和方法名稱的參數。 我想要做的是有一個方法,它將查找@ URI,如果它包含單詞「localhost」它將使用反射並調用一個方法,作爲參數傳入的名稱,在同一個類,返回一個值並繼續。試圖在同一類中使用反射來調用方法
public class Test
{
public GetStatResponse GetStat(GetStatRequest request)
{
GetStatResponse returnValue = new GetStatResponse();
if(Helpers.Contains(request.ServiceURI,"localhost", StringComparison.OrdinalIgnoreCase))
{
MethodInfo mi = this.GetType().GetMethod(request.ServiceMethod /*, BindingFlags.Public | BindingFlags.IgnoreCase*/);
returnValue = (GetStatResponse)mi.Invoke(this,null);
}
以上是有關這個問題的代碼段。我拉MethodInfo沒有問題,但我遇到了mi.Invoke的問題。我收到的異常是「異常已被調用的目標引發」。帶有內部異常「對象引用未設置爲對象的實例」。我試圖將代碼更改爲(GetStatResponse)mi.Invoke(new Test(),null),但沒有運氣。考試是課堂。
對於如何解決這個問題,我接受其他建議,我只是認爲反射可能是最簡單的。
,我與我的測試調用該方法被定義爲
public GetStatResponse TestMethod()
{
GetStatResponse returnValue = new GetStatResponse();
Stat stat = new Stat();
Stat.Label = "This is my label";
Stat.ToolTip = "This is my tooltip";
Stat.Value = "this is my value";
returnValue.Stat = stat;
return returnValue;
}
目標程序的方法不需要任何參數之前? – 2010-07-08 04:34:26
目標方法沒有參數 – 2010-07-08 04:43:51