1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
protected object[] Invoke(string method_name, object[] parameters)
{
WebResponse webResponse;
object[] objArray;
SoapMethodStubInfo method = (SoapMethodStubInfo) this.type_info.GetMethod(method_name);
SoapClientMessage message = new SoapClientMessage(this, method, base.Url, parameters);
message.CollectHeaders(this, message.MethodStubInfo.Headers, SoapHeaderDirection.In);
SoapExtension[] extensions = SoapExtension.CreateExtensionChain(this.type_info.SoapExtensions[0], method.SoapExtensions, this.type_info.SoapExtensions[1]);
try
{
WebRequest requestForMessage = this.GetRequestForMessage(base.uri, message);
this.SendRequest(requestForMessage.GetRequestStream(), message, extensions);
webResponse = this.GetWebResponse(requestForMessage);
}
catch (WebException exception)
{
webResponse = exception.Response;
HttpWebResponse response2 = webResponse as HttpWebResponse;
if ((response2 == null) || (response2.StatusCode != HttpStatusCode.InternalServerError))
{
throw exception;
}
}
try
{
objArray = this.ReceiveResponse(webResponse, message, extensions);
}
finally
{
webResponse.Close();
}
return objArray;
} |
Partager