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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
|
<?xml version="1.0" encoding="utf-8"?>
<Type Name="SoapExtension" FullName="System.Web.Services.Protocols.SoapExtension">
<TypeSignature Language="C#" Value="public abstract class SoapExtension" Maintainer="auto" />
<AssemblyInfo>
<AssemblyName>System.Web.Services</AssemblyName>
<AssemblyPublicKey>
</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>ASP.NET allows a SOAP-related infrastructure to be built by means of an extensibility mechanism. The ASP.NET SOAP extension architecture revolves around an extension that can inspect or modify a message at specific stages in message processing on either the client or the server.</para>
<para>ASP.NET SOAP extensions derive from the <see cref="T:System.Web.Services.Protocols.SoapExtension" /> class. The <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> and <see cref="M:System.Web.Services.Protocols.SoapExtension.Initialize(System.Object)" /> methods provide alternative mechanisms for initializing the SOAP extension to enhance performance. <see cref="M:System.Web.Services.Protocols.SoapExtension.ProcessMessage(System.Web.Services.Protocols.SoapMessage)" /> is the heart of most SOAP extensions, as the method is called at each stage defined in <see cref="T:System.Web.Services.Protocols.SoapMessageStage" />, allowing the SOAP extension to perform the desired behavior of that specific SOAP extension. For SOAP extensions that need to modify the SOAP request or SOAP response, <see cref="M:System.Web.Services.Protocols.SoapExtension.ChainStream(System.IO.Stream)" /> provides an opportunity to receive the proposed data to be sent across the wire.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The base class for SOAP extensions for XML Web services created using ASP.NET.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected SoapExtension ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<remarks>To be added</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Web.Services.Protocols.SoapExtension" /> class. </para>
</summary>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="ChainStream">
<MemberSignature Language="C#" Value="public virtual System.IO.Stream ChainStream (System.IO.Stream stream);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.IO.Stream</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="stream" Type="System.IO.Stream" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="M:System.Web.Services.Protocols.SoapExtension.ChainStream(System.IO.Stream)" /> ensures that SOAP extensions with the highest priority can modify the actual data closest to the SOAP message sent or returned over the wire. </para>
<para>SOAP extensions should save references of the <see cref="T:System.IO.Stream" /> passed into <see cref="M:System.Web.Services.Protocols.SoapExtension.ChainStream(System.IO.Stream)" /> and the <see cref="T:System.IO.Stream" /> returned from <see cref="M:System.Web.Services.Protocols.SoapExtension.ChainStream(System.IO.Stream)" />. If the SOAP extension is configured to run with a XML Web service method, the <see cref="T:System.IO.Stream" /> passed into <see cref="M:System.Web.Services.Protocols.SoapExtension.ChainStream(System.IO.Stream)" /> contains the serialized SOAP request at the <see cref="F:System.Web.Services.Protocols.SoapMessageStage.BeforeDeserialize" /> <see cref="T:System.Web.Services.Protocols.SoapMessageStage" />. Similarily, the <see cref="T:System.IO.Stream" /> reference returned from <see cref="M:System.Web.Services.Protocols.SoapExtension.ChainStream(System.IO.Stream)" /> is written into when the serialization occurs and thus contains the serialized SOAP response in the <see cref="F:System.Web.Services.Protocols.SoapMessageStage.AfterSerialize" /> <see cref="T:System.Web.Services.Protocols.SoapMessageStage" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When overridden in a derived class, allows a SOAP extension access to the memory buffer containing the SOAP request or response.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A <see cref="T:System.IO.Stream" /> representing a new memory buffer that this SOAP extension can modify.</para>
</returns>
<param name="stream">
<attribution license="cc4" from="Microsoft" modified="false" />A memory buffer containing the SOAP request or response. </param>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="GetInitializer">
<MemberSignature Language="C#" Value="public abstract object GetInitializer (Type serviceType);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="serviceType" Type="System.Type" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The overload of <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> that gets called by ASP.NET depends on how the SOAP extension was specified. There are two methods for specifying a SOAP extension: </para>
<list type="bullet">
<item>
<para>Apply a custom attribute, deriving from <see cref="T:System.Web.Services.Protocols.SoapExtensionAttribute" />, to the individual XML Web service method.</para>
</item>
<item>
<para>Add a reference in either the web.config or app.config configuration files.</para>
</item>
</list>
<para>If you add a reference to one of the configuration files, the SOAP extension runs for all XML Web services within the scope of that configuration file. When specifying, a SOAP extension by referencing a configuration file, ASP.NET invokes the <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> overload that passes in a <see cref="T:System.Type" />. When specifying an extension by applying a custom attribute, ASP.NET invokes the <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> that passes in a <see cref="T:System.Web.Services.Protocols.LogicalMethodInfo" /> and a <see cref="T:System.Web.Services.Protocols.SoapExtensionAttribute" />.</para>
<para>For details on adding SOAP extensions to a configuration file, see <format type="text/html"><a href="1F0D71BC-8FAA-4730-B500-2A6C7B5D4F6B">[<topic://cpconconfigurationoptionsforaspnetwebservices>]</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When overridden in a derived class, allows a SOAP extension to initialize data specific to a class implementing an XML Web service at a one time performance cost.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="T:System.Object" /> that the SOAP extension initializes for caching.</para>
</returns>
<param name="serviceType">
<attribution license="cc4" from="Microsoft" modified="false" />The type of the class implementing the XML Web service to which the SOAP extension is applied. </param>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="GetInitializer">
<MemberSignature Language="C#" Value="public abstract object GetInitializer (System.Web.Services.Protocols.LogicalMethodInfo methodInfo, System.Web.Services.Protocols.SoapExtensionAttribute attribute);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="methodInfo" Type="System.Web.Services.Protocols.LogicalMethodInfo" />
<Parameter Name="attribute" Type="System.Web.Services.Protocols.SoapExtensionAttribute" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>If the SOAP extension is configured using a configuration file see the <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> overload that accepts a <see cref="T:System.Type" />.</para>
<para>A SOAP extension has three opportunities to initialize data and they all have different purposes: </para>
<list type="bullet">
<item>
<para>Class constructor - The class constructor is called every time a SOAP extension is instantiated and is typically used to initialize member variables.</para>
</item>
<item>
<para>
<see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> - <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" />, however, is called just once, the first time a SOAP request is made to an XML Web services method. If a custom attribute is applied to the XML Web service method, the <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> method is invoked. This allows the SOAP extension to interrogate the <see cref="T:System.Web.Services.Protocols.LogicalMethodInfo" /> of an XML Web service method for prototype information or to access extension-specific data passed by a class deriving from <see cref="T:System.Web.Services.Protocols.SoapExtensionAttribute" />. The return value is cached by ASP.NET and passed into subsequent <see cref="M:System.Web.Services.Protocols.SoapExtension.Initialize(System.Object)" /> methods. Therefore, initialization done in <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> is encapsulated essentially into a one-time performance hit.</para>
</item>
<item>
<para>
<see cref="M:System.Web.Services.Protocols.SoapExtension.Initialize(System.Object)" /> - <see cref="M:System.Web.Services.Protocols.SoapExtension.Initialize(System.Object)" /> is called every time a SOAP request is made to an XML Web service method, but has an advantage over the class constructor, in that the <see cref="T:System.Object" /> initialized in <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> is passed to it.</para>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When overridden in a derived class, allows a SOAP extension to initialize data specific to an XML Web service method using an attribute applied to the XML Web service method at a one time performance cost.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="T:System.Object" /> that the SOAP extension initializes for caching.</para>
</returns>
<param name="methodInfo">
<attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Web.Services.Protocols.LogicalMethodInfo" /> representing the specific function prototype for the XML Web service method to which the SOAP extension is applied. </param>
<param name="attribute">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.Services.Protocols.SoapExtensionAttribute" /> applied to the XML Web service method. </param>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="Initialize">
<MemberSignature Language="C#" Value="public abstract void Initialize (object initializer);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="initializer" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A SOAP extension has three opportunities to initialize data and they all have different purposes: </para>
<list type="bullet">
<item>
<para>Class constructor - The class constructor is called every time a SOAP extension is instantiated and is typically used to initialize member variables.</para>
</item>
<item>
<para>
<see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> - <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" />, however, is called just once, the first time a SOAP request is made to an XML Web services method. If a custom attribute is applied to the XML Web service method, the <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> method is invoked. This allows the SOAP extension to interrogate the <see cref="T:System.Web.Services.Protocols.LogicalMethodInfo" /> of an XML Web service method for prototype information or to access extension-specific data passed by a class deriving from <see cref="T:System.Web.Services.Protocols.SoapExtensionAttribute" />. The return value is cached by ASP.NET and passed into subsequent <see cref="M:System.Web.Services.Protocols.SoapExtension.Initialize(System.Object)" /> methods. Therefore, initialization done in <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> is encapsulated essentially into a one-time performance hit.</para>
</item>
<item>
<para>
<see cref="M:System.Web.Services.Protocols.SoapExtension.Initialize(System.Object)" /> - <see cref="M:System.Web.Services.Protocols.SoapExtension.Initialize(System.Object)" /> is called every time a SOAP request is made to an XML Web service method, but has an advantage over the class constructor, in that the <see cref="T:System.Object" /> initialized in <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> is passed to it.</para>
</item>
<item>
<para />
</item>
</list>
<block subset="none" type="note">
<para>You can also add a SOAP extension without deriving from <see cref="T:System.Web.Services.Protocols.SoapExtensionAttribute" /> by using the <format type="text/html"><a href="7a373a98-6d82-4f8d-a6fc-2996da3fd54c"><soapExtensionTypes> Element</a></format> in a configuration file. For details, see <format type="text/html"><a href="7a373a98-6d82-4f8d-a6fc-2996da3fd54c"><soapExtensionTypes> Element</a></format> and <format type="text/html"><a href="97d81ace-95e7-4acc-ae39-9692a0021e95">SOAP Message Modification Using SOAP Extensions</a></format>.</para>
</block>
<list type="bullet">
<item>
<para />
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When overridden in a derived class, allows a SOAP extension to initialize itself using the data cached in the <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> method.</para>
</summary>
<param name="initializer">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> returned from <see cref="M:System.Web.Services.Protocols.SoapExtension.GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo,System.Web.Services.Protocols.SoapExtensionAttribute)" /> cached by ASP.NET. </param>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
<Member MemberName="ProcessMessage">
<MemberSignature Language="C#" Value="public abstract void ProcessMessage (System.Web.Services.Protocols.SoapMessage message);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="message" Type="System.Web.Services.Protocols.SoapMessage" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="M:System.Web.Services.Protocols.SoapExtension.ProcessMessage(System.Web.Services.Protocols.SoapMessage)" /> is called at all <see cref="T:System.Web.Services.Protocols.SoapMessageStage" /> stages for SOAP extensions applied to both XML Web services created using ASP.NET and their clients. At each <see cref="T:System.Web.Services.Protocols.SoapMessageStage" />, an instance of a class deriving from <see cref="T:System.Web.Services.Protocols.SoapMessage" /> is passed to <see cref="M:System.Web.Services.Protocols.SoapExtension.ProcessMessage(System.Web.Services.Protocols.SoapMessage)" />. If the SOAP extension is running on the XML Web service client, then a <see cref="T:System.Web.Services.Protocols.SoapClientMessage" /> object is passed into <see cref="M:System.Web.Services.Protocols.SoapExtension.ProcessMessage(System.Web.Services.Protocols.SoapMessage)" />; otherwise a <see cref="T:System.Web.Services.Protocols.SoapServerMessage" /> object is passed in.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When overridden in a derived class, allows a SOAP extension to receive a <see cref="T:System.Web.Services.Protocols.SoapMessage" /> to process at each <see cref="T:System.Web.Services.Protocols.SoapMessageStage" />.</para>
</summary>
<param name="message">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Web.Services.Protocols.SoapMessage" /> to process. </param>
</Docs>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
</Member>
</Members>
</Type>
|