2 // System.Web.Services.Protocols.SoapClientMessage.cs
\r
5 // Tim Coleman (tim@timcoleman.com)
\r
6 // Miguel de Icaza (miguel@ximian.com)
\r
8 // Copyright (C) Tim Coleman, 2002
\r
9 // Copyright (C) Ximian, Inc. 2003
\r
12 using System.Web.Services;
\r
13 using System.Web.Services.Protocols;
\r
15 namespace System.Web.Services.Protocols {
\r
16 public sealed class SoapClientMessage : SoapMessage {
\r
20 SoapHttpClientProtocol client;
\r
22 LogicalMethodInfo client_method;
\r
23 internal MethodStubInfo MethodStubInfo;
\r
26 // Expose this one internally
\r
28 internal object [] Parameters;
\r
31 #region Constructors
\r
34 // Constructs the SoapClientMessage
\r
36 internal SoapClientMessage (SoapHttpClientProtocol client, MethodStubInfo msi, string url, object [] parameters)
\r
38 this.MethodStubInfo = msi;
\r
39 this.client = client;
\r
40 this.client_method = client_method;
\r
42 Parameters = parameters;
\r
44 foreach (HeaderInfo hi in msi.Headers) {
\r
45 SoapHeader headerVal = hi.GetHeaderValue (client) as SoapHeader;
\r
46 if (headerVal != null)
\r
47 Headers.Add (headerVal);
\r
55 public override string Action {
\r
56 get { return MethodStubInfo.Action; }
\r
59 public SoapHttpClientProtocol Client {
\r
60 get { return client; }
\r
63 public override LogicalMethodInfo MethodInfo {
\r
64 get { return client_method; }
\r
67 public override bool OneWay {
\r
68 get { return MethodStubInfo.OneWay; }
\r
71 public override string Url {
\r
75 #endregion // Properties
\r
80 protected override void EnsureInStage ()
\r
83 // I believe for SoapClientMessage, we can safely remove this check
\r
84 // as the In parameters are always available
\r
86 throw new NotImplementedException ();
\r
89 protected override void EnsureOutStage ()
\r
91 EnsureStage (SoapMessageStage.AfterDeserialize);
\r
94 #endregion // Methods
\r