<?xml version="1.0" encoding="utf-8"?>
<Type Name="IWsdlImportExtension" FullName="System.ServiceModel.Description.IWsdlImportExtension">
  <TypeSignature Language="C#" Value="public interface IWsdlImportExtension" />
  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IWsdlImportExtension" />
  <AssemblyInfo>
    <AssemblyName>System.ServiceModel</AssemblyName>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Interfaces />
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Implement the <see cref="T:System.ServiceModel.Description.IWsdlImportExtension" /> interface to control the mapping between WSDL and <see cref="T:System.ServiceModel.Description.ServiceEndpoint" /> and <see cref="T:System.ServiceModel.Description.ContractDescription" /> objects, especially when reading custom WSDL extensions to modify your contract or endpoint information. Then attach your custom <see cref="T:System.ServiceModel.Description.IWsdlImportExtension" /> object to a <see cref="T:System.ServiceModel.Description.WsdlImporter" /> either programmatically or by using an application configuration file. You can also attach your custom <see cref="T:System.ServiceModel.Description.IWsdlImportExtension" /> object to the internal <see cref="T:System.ServiceModel.Description.WsdlImporter" /> used by the <format type="text/html"><a href="1abf3d9f-b420-46f1-b628-df238751f308">Service Model Metadata Utility Tool (Svcutil.exe)</a></format> using an application configuration file.</para>
      <para>The <see cref="M:System.ServiceModel.Description.IWsdlImportExtension.ImportContract(System.ServiceModel.Description.WsdlImporter,System.ServiceModel.Description.WsdlContractConversionContext)" /> method is called to import a contract. </para>
      <para>Use the <see cref="M:System.ServiceModel.Description.IWsdlImportExtension.BeforeImport(System.Web.Services.Description.ServiceDescriptionCollection,System.Xml.Schema.XmlSchemaSet,System.Collections.Generic.ICollection{System.Xml.XmlElement})" /> method to modify the metadata that is then imported into <see cref="T:System.ServiceModel.Description.ServiceEndpoint" /> and <see cref="T:System.ServiceModel.Description.ContractDescription" /> objects.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Implement and attach to a <see cref="T:System.ServiceModel.Description.WsdlImporter" /> object to control how the importer maps Web Services Description Language (WSDL) parts to those of a <see cref="T:System.Web.Services.Description.ServiceDescription" /> object.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName="BeforeImport">
      <MemberSignature Language="C#" Value="public void BeforeImport (System.Web.Services.Description.ServiceDescriptionCollection wsdlDocuments, System.Xml.Schema.XmlSchemaSet xmlSchemas, System.Collections.Generic.ICollection&lt;System.Xml.XmlElement&gt; policy);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void BeforeImport(class System.Web.Services.Description.ServiceDescriptionCollection wsdlDocuments, class System.Xml.Schema.XmlSchemaSet xmlSchemas, class System.Collections.Generic.ICollection`1&lt;class System.Xml.XmlElement&gt; policy) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="wsdlDocuments" Type="System.Web.Services.Description.ServiceDescriptionCollection" />
        <Parameter Name="xmlSchemas" Type="System.Xml.Schema.XmlSchemaSet" />
        <Parameter Name="policy" Type="System.Collections.Generic.ICollection&lt;System.Xml.XmlElement&gt;" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.ServiceModel.Description.IWsdlImportExtension.BeforeImport(System.Web.Services.Description.ServiceDescriptionCollection,System.Xml.Schema.XmlSchemaSet,System.Collections.Generic.ICollection{System.Xml.XmlElement})" /> methods of all registered <see cref="T:System.ServiceModel.Description.IWsdlImportExtension" /> objects is called before anything is imported from the supplied metadata.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Called prior to importing metadata documents.</para>
        </summary>
        <param name="wsdlDocuments">
          <attribution license="cc4" from="Microsoft" modified="false" />The service descriptions to modify.</param>
        <param name="xmlSchemas">
          <attribution license="cc4" from="Microsoft" modified="false" />The schema collection to be used when importing.</param>
        <param name="policy">
          <attribution license="cc4" from="Microsoft" modified="false" />The policy assertions used when importing.</param>
      </Docs>
    </Member>
    <Member MemberName="ImportContract">
      <MemberSignature Language="C#" Value="public void ImportContract (System.ServiceModel.Description.WsdlImporter importer, System.ServiceModel.Description.WsdlContractConversionContext contractContext);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void ImportContract(class System.ServiceModel.Description.WsdlImporter importer, class System.ServiceModel.Description.WsdlContractConversionContext contractContext) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="importer" Type="System.ServiceModel.Description.WsdlImporter" />
        <Parameter Name="contractContext" Type="System.ServiceModel.Description.WsdlContractConversionContext" />
      </Parameters>
      <Docs>
        <param name="contractContext">To be added.</param>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.ServiceModel.Description.IWsdlImportExtension.ImportContract(System.ServiceModel.Description.WsdlImporter,System.ServiceModel.Description.WsdlContractConversionContext)" /> method is called when a contract is being imported. You can modify the contract or insert other exporting behaviors such as <see cref="T:System.ServiceModel.Description.IServiceContractGenerationExtension" /> and an <see cref="T:System.ServiceModel.Description.IOperationContractGenerationExtension" /> objects to modify the code that is generated for the contract.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Called when importing a contract.</para>
        </summary>
        <param name="importer">
          <attribution license="cc4" from="Microsoft" modified="false" />The importer.</param>
      </Docs>
    </Member>
    <Member MemberName="ImportEndpoint">
      <MemberSignature Language="C#" Value="public void ImportEndpoint (System.ServiceModel.Description.WsdlImporter importer, System.ServiceModel.Description.WsdlEndpointConversionContext endpointContext);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void ImportEndpoint(class System.ServiceModel.Description.WsdlImporter importer, class System.ServiceModel.Description.WsdlEndpointConversionContext endpointContext) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="importer" Type="System.ServiceModel.Description.WsdlImporter" />
        <Parameter Name="endpointContext" Type="System.ServiceModel.Description.WsdlEndpointConversionContext" />
      </Parameters>
      <Docs>
        <param name="endpointContext">To be added.</param>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="M:System.ServiceModel.Description.IWsdlImportExtension.ImportEndpoint(System.ServiceModel.Description.WsdlImporter,System.ServiceModel.Description.WsdlEndpointConversionContext)" /> method is called when importing an endpoint. Modify the context properties to customize the imported endpoint.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Called when importing an endpoint.</para>
        </summary>
        <param name="importer">
          <attribution license="cc4" from="Microsoft" modified="false" />The importer.</param>
      </Docs>
    </Member>
  </Members>
</Type>