反射呼叫WebService時出現’引數計數不匹配。
在傳遞一個引數時沒問題,如何傳遞多個引數?
一、呼叫
public void GetProduct(){
string iri = "http://localhost:61263/WebServiceTest.asmx";
var action = "GetCustomerByName";
Object[] objParm = new Object[] { 1, 2 };
WebServiceProxy web = new WebServiceProxy(iri, action, ref errMsg);
var result = web.ExecuteQuery(action, objParm, ref errMsg);
}
public object ExecuteQuery(string methodName, object[] param, ref string errMsg, int timeOut = 3000) {
errMsg = string.Empty;
object rtnObj = null;
try {
if (this._typeName == null) {
errMsg = "Web服務訪問類名【" + this._wsdlName + "】不正確,請檢查!";
return null;
}
//呼叫方法
MethodInfo mi = this._typeName.GetMethod(methodName);
if (mi == null) {
errMsg = "Web服務訪問方法名【" + methodName + "】不正確,請檢查!";
return null;
}
try {
if (param == null)
rtnObj = mi.Invoke(Instance, null);
else {
rtnObj = mi.Invoke(Instance, param);
}
} catch (Exception tle) {
errMsg = $"Web服務訪問方法【{methodName}】出錯:{tle.Message},請檢查!";
}
} catch (Exception ex) {
errMsg = ex.Message + ";" + ex.InnerException;
}
return rtnObj;
}
二、web service方法
[WebMethod]
public int GetCustomerByName(int age,int salary) { //傳遞進為0?
return age+salary;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/284636.html
標籤:C#
上一篇:檔案名稱被修改如何彈出提示資訊
下一篇:救命
