1 //------------------------------------------------------------------------------
2 // <copyright file="SoapClientMessage.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //------------------------------------------------------------------------------
6 
7 namespace System.Web.Services.Protocols {
8     using System.Web.Services;
9     using System.Xml.Serialization;
10     using System;
11     using System.Reflection;
12     using System.Collections;
13     using System.IO;
14     using System.ComponentModel;
15     using System.Runtime.InteropServices;
16 
17     /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage"]/*' />
18     /// <devdoc>
19     ///    <para>[To be supplied.]</para>
20     /// </devdoc>
21     public sealed class SoapClientMessage : SoapMessage {
22         SoapClientMethod method;
23         SoapHttpClientProtocol protocol;
24         string url;
25 
26         internal SoapExtension[] initializedExtensions;
27 
SoapClientMessage(SoapHttpClientProtocol protocol, SoapClientMethod method, string url)28         internal SoapClientMessage(SoapHttpClientProtocol protocol, SoapClientMethod method, string url) {
29             this.method = method;
30             this.protocol = protocol;
31             this.url = url;
32         }
33 
34         /*
35         internal override bool IsInitialized {
36             get { return true; }
37         }
38         */
39 
40         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.OneWay"]/*' />
41         /// <devdoc>
42         ///    <para>[To be supplied.]</para>
43         /// </devdoc>
44         public override bool OneWay {
45             get { return method.oneWay; }
46         }
47 
48         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.Client"]/*' />
49         /// <devdoc>
50         ///    <para>[To be supplied.]</para>
51         /// </devdoc>
52         public SoapHttpClientProtocol Client {
53             get { return protocol; }
54         }
55 
56         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.MethodInfo"]/*' />
57         /// <devdoc>
58         ///    <para>[To be supplied.]</para>
59         /// </devdoc>
60         public override LogicalMethodInfo MethodInfo {
61             get { return method.methodInfo; }
62         }
63 
64         /*
65         internal override SoapReflectedExtension[] Extensions {
66             get { return method.extensions; }
67         }
68 
69         internal override object[] ExtensionInitializers {
70             get { return method.extensionInitializers; }
71         }
72         */
73 
74         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.Url"]/*' />
75         /// <devdoc>
76         ///    <para>[To be supplied.]</para>
77         /// </devdoc>
78         public override string Url {
79             get { return url; }
80         }
81 
82         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.Action"]/*' />
83         /// <devdoc>
84         ///    <para>[To be supplied.]</para>
85         /// </devdoc>
86         public override string Action {
87             get { return method.action; }
88         }
89 
90         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.SoapVersion"]/*' />
91         [ComVisible(false)]
92         public override SoapProtocolVersion SoapVersion {
93             get { return protocol.SoapVersion == SoapProtocolVersion.Default ? SoapProtocolVersion.Soap11 : protocol.SoapVersion; }
94         }
95 
96         internal SoapClientMethod Method {
97             get { return method; }
98         }
99 
100         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.EnsureOutStage"]/*' />
101         /// <devdoc>
102         ///    <para>[To be supplied.]</para>
103         /// </devdoc>
EnsureOutStage()104         protected override void EnsureOutStage() {
105             EnsureStage(SoapMessageStage.AfterDeserialize);
106         }
107 
108         /// <include file='doc\SoapClientMessage.uex' path='docs/doc[@for="SoapClientMessage.EnsureInStage"]/*' />
109         /// <devdoc>
110         ///    <para>[To be supplied.]</para>
111         /// </devdoc>
EnsureInStage()112         protected override void EnsureInStage() {
113             EnsureStage(SoapMessageStage.BeforeSerialize);
114         }
115     }
116 }
117