242 lines
21 KiB
XML
242 lines
21 KiB
XML
|
<?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>
|