我想調用一個通用的方法。該方法的定義如下:Method.Invoke失敗,參數計數不匹配
public System.Collections.Generic.IList<T> Query<T>(string query, [string altUrl = ""])
where T : new()
這是來自github上的SalesforceSharp庫。我試圖在這個調用上增加一個服務層,並努力調用它。看到我的代碼如下。
public List<T> Query<T>()
{
//IList<Salesforce.Account> _returnList = null;
IList<T> _returnList = null;
Type _t = typeof(T);
SqlBuilder _sb = new SqlBuilder();
_sb.Table = _t.Name.ToString();
foreach (PropertyInfo p in _t.GetProperties()) _sb.Fields.Add(p.Name.ToString());
MethodInfo method = _Client.GetType().GetMethod("Query");
method = method.MakeGenericMethod(_t);
try
{
object[] _prms = new object[1];
_prms[0] = _sb.SQL;
_returnList = (IList<T>)method.Invoke(_Client, new object[] { _prms });
//_returnList = _Client.Query<Salesforce.Account>(_sb.SQL);
}
catch { }
return (List<T>)_returnList;
}
如果我運行此我得到一個參數指望method.invoke線匹配異常,但我很困惑,因爲如果我在兩個註釋的行帶和執行不一般稱之爲好的工作。我已經嘗試了包裝在對象數組中的字符串數組,包含在字符串中的字符串等的許多組合,但無法實現。我想也許它把第二個參數當作強制性的?但添加另一個對象到我的_prms數組也沒有工作。
請幫忙!
感謝, 大教堂
感謝您的建議,我確實嘗試過,可悲的是它沒有幫助。 –