2 // WebServicesClientProtocol.cs: Web Services Client Protocol
5 // Sebastien Pouliot (spouliot@motus.com)
7 // (C) 2003 Motus Technologies Inc. (http://www.motus.com)
12 using System.Web.Services.Protocols;
14 namespace Microsoft.Web.Services {
16 public class WebServicesClientProtocol : SoapHttpClientProtocol {
18 private Pipeline _pipeline;
19 private SoapContext _requestContext;
20 private SoapContext _responseContext;
22 public WebServicesClientProtocol () {}
24 public Pipeline Pipeline {
26 if (_pipeline == null)
27 _pipeline = new Pipeline ();
32 throw new System.ArgumentNullException ("value");
37 public SoapContext RequestSoapContext {
39 if (_requestContext == null)
40 _requestContext = new SoapContext ();
41 return _requestContext;
45 public SoapContext ResponseSoapContext {
47 if (_responseContext == null)
48 _responseContext = new SoapContext ();
49 return _responseContext;
53 [MonoTODO("something is missing")]
54 public new string Url {
55 get { return base.Url; }
56 set { base.Url = value; }
59 protected override WebRequest GetWebRequest (Uri uri)
61 SoapWebRequest request = new SoapWebRequest (uri);
62 RequestSoapContext.CopyTo (request.SoapContext);
63 request.Pipeline = Pipeline;
67 protected override WebResponse GetWebResponse (WebRequest request)
69 WebResponse response = request.GetResponse ();
70 //response.SoapContext.CopyTo (ResponseSoapContext);
74 [MonoTODO("do not support IAsyncResult")]
75 protected override WebResponse GetWebResponse (WebRequest request, IAsyncResult result)
77 SoapWebResponse response = (SoapWebResponse) request.GetResponse ();
78 response.SoapContext.CopyTo (ResponseSoapContext);