using System.Collections;\r
using System.Threading;\r
\r
-namespace System.Web.Services.Protocols {\r
- public class SoapHttpClientProtocol : HttpWebClientProtocol {\r
+namespace System.Web.Services.Protocols \r
+{\r
+ public class SoapHttpClientProtocol : HttpWebClientProtocol \r
+ {\r
SoapTypeStubInfo type_info;\r
+#if NET_2_0\r
+ WsiClaims conformanceClaims;\r
+ SoapProtocolVersion soapVersion;\r
+#endif\r
\r
#region SoapWebClientAsyncResult class\r
\r
msg = String.Format (msg, (int) code, code);\r
throw new WebException (msg, null, WebExceptionStatus.ProtocolError, http_response);\r
}\r
+ if (response.ContentLength == 0 && (code == HttpStatusCode.Accepted || code == HttpStatusCode.OK)) {\r
+ return new object[0];\r
+ }\r
}\r
\r
//\r
\r
// Deserialize the response\r
\r
- StreamReader reader = new StreamReader (stream, encoding, false);\r
- XmlTextReader xml_reader = new XmlTextReader (reader);\r
-\r
SoapHeaderCollection headers;\r
object content;\r
\r
- WebServiceHelper.ReadSoapMessage (xml_reader, type_info, msi.Use, msi.ResponseSerializer, out content, out headers);\r
+ using (StreamReader reader = new StreamReader (stream, encoding, false)) {
+ XmlTextReader xml_reader = new XmlTextReader (reader);
+
+ WebServiceHelper.ReadSoapMessage (xml_reader, type_info, msi.Use, msi.ResponseSerializer,
+ out content, out headers);
+ }
+
\r
if (content is Fault)\r
{\r
\r
return ReceiveResponse (response, message, extensions);\r
}\r
+ \r
+#if NET_2_0\r
+\r
+ [MonoTODO ("Do something with this")]\r
+ [System.Runtime.InteropServices.ComVisible(false)]\r
+ [Obsolete]\r
+ public WsiClaims ConformanceClaims {\r
+ get { return conformanceClaims; }\r
+ set { conformanceClaims = value; }\r
+ }\r
+ \r
+ [MonoTODO ("Do something with this")]\r
+ [System.Runtime.InteropServices.ComVisible(false)]\r
+ public SoapProtocolVersion SoapVersion {\r
+ get { return soapVersion; }\r
+ set { soapVersion = value; }\r
+ }\r
+ \r
+ protected void InvokeAsync (string methodName, object[] parameters, SendOrPostCallback callback)\r
+ {\r
+ InvokeAsync (methodName, parameters, callback, null);\r
+ }\r
+\r
+ protected void InvokeAsync (string methodName, object[] parameters, SendOrPostCallback callback, object userState)\r
+ {\r
+ InvokeAsyncInfo info = new InvokeAsyncInfo (callback, userState);\r
+ BeginInvoke (methodName, parameters, new AsyncCallback (InvokeAsyncCallback), info);\r
+ }\r
+ \r
+ void InvokeAsyncCallback (IAsyncResult ar)\r
+ {\r
+ InvokeAsyncInfo info = (InvokeAsyncInfo) ar.AsyncState;\r
+ SoapWebClientAsyncResult sar = (SoapWebClientAsyncResult) ar;\r
+ InvokeCompletedEventArgs args = new InvokeCompletedEventArgs (sar.Exception, false, info.UserState, (object[]) sar.Result);\r
+ if (info.Context != null)\r
+ info.Context.SendOrPost (info.Callback, args);\r
+ else\r
+ info.Callback (args);\r
+ }\r
+\r
+#endif\r
\r
#endregion // Methods\r
}\r
}
+\r