Partager via


Élément <provider> (instance)

Cette rubrique est spécifique à la technologie héritée assurant la compatibilité descendante avec des applications existantes et n'est pas recommandée en cas de nouveau développement. Les applications distribuées doivent maintenant être développées à l'aide de Windows Communication Foundation (WCF)

Contient le fournisseur de récepteur de canal du récepteur de canal qui doit être inséré dans la chaîne du récepteur de canal.

<configuration>

   <system.runtime.remoting>

      <channels>

         <channel>

            <serverProviders>

               <provider/>

Les fournisseurs spécifiés à cet emplacement se substituent aux fournisseurs serveurs par défaut du canal et deviennent les nouveaux fournisseurs par défaut du modèle de canal.

<configuration>

   <system.runtime.remoting>

      <channels>

         <channel>

            <clientProviders>

               <provider/>

Les fournisseurs spécifiés à cet emplacement se substituent aux fournisseurs clients par défaut du canal et deviennent les nouveaux fournisseurs par défaut du modèle de canal.

<configuration>

   <system.runtime.remoting>

      <application>

         <channels>

            <channel>

               <serverProviders>

                  <provider/>

Les fournisseurs serveurs spécifiés à cet emplacement se substituent aux fournisseurs par défaut de cette instance de canal.

<configuration>

   <system.runtime.remoting>

      <application>

         <channels>

            <channel>

               <clientProviders>

                  <provider/>

Les fournisseurs clients spécifiés à cet emplacement se substituent aux fournisseurs par défaut de cette instance de canal.

<provider 
    ref="ProviderTemplateReference"
   type="ProviderType, ProviderAssembly"
   customChannelSinkProperty="customProperty"
/>

Attributs facultatifs

Attribut Description

customChannelSinkProperty

Indique une propriété de récepteur de canal personnalisé prise en charge. Vous pouvez spécifier autant de propriétés de fournisseur et de récepteur de canal que les fournisseurs de récepteurs de canaux personnalisés et leurs récepteurs peuvent en accepter. Une propriété de récepteur de canal personnalisé est spécifiée à l'aide d'une paire attribut/valeur. Dans l'exemple :

<provider id="CustomChannelSinkProvider" type="Namespace.CustomChannelSinkProvider, CustomChannels" customChannelSinkProperty="ChannelSinkPropertyValue"/>

l'attribut customChannelSinkProperty et sa valeur seront disponibles comme argument IDictionary dans le constructeur du fournisseur.

Les données d'un fournisseur de canal personnalisé peuvent également être spécifiées à cet emplacement. Un seul niveau de nœuds est pris en charge. Dans l'exemple :

<provider ref="custom">
   <extra data="value"/>
   <extra data="AnotherValue"/>
</provider>

les informations supplémentaires seront disponibles comme ICollection du SinkProviderData dans le constructeur du fournisseur.

Attributs requis

Attribut Description

type

Spécifie le nom complet du type du fournisseur de récepteur de canal et le nom de l'assembly contenant l'implémentation du fournisseur. Cela inclut les informations de version, de culture et de clé publique si l'assembly conteneur se trouve dans le Global Assembly Cache. Cet attribut n'est obligatoire que si vous n'utilisez pas d'attribut ref.

ref

Spécifie l'ID du modèle de fournisseur de récepteur de canal correspondant au récepteur de canal que votre client prévoit d'inscrire en vue de son utilisation. Si vous spécifiez l'attribut ref, il est inutile de définir l'attribut type.

Notes

Vous pouvez faire référence à un autre modèle de fournisseur en utilisant la valeur id de ce modèle comme valeur de l'attribut ref de cette instance. Les fournisseurs spécifiés à cet emplacement se substituent aux fournisseurs par défaut ; si d'autres fournisseurs doivent être appelés dans le cadre de la chaîne d'appel de récepteur de canal, vous devez les spécifier à cet emplacement.

Les instances de l'élément <provider> peuvent apparaître à quatre emplacements. Lorsqu'il est spécifié sous un élément de modèle <channel> (dans l'un des deux éléments <serverProviders> ou <clientProviders>), cet élément spécifie un fournisseur qui devient le fournisseur de récepteur par défaut pour ce canal donné lorsqu'une instance d'application y fait référence. Lorsqu'il est spécifié sous un élément <application>, il se substitue à tous les récepteurs par défaut qui ont pu être configurés pour ce canal s'il figurait dans un modèle. Tous les autres fournisseurs que vous souhaitez insérer dans la chaîne d'appel doivent être spécifiés à cet emplacement, car l'inclusion d'un fournisseur à cet endroit remplace le fournisseur par défaut défini dans le modèle.

Exemple

Le fichier de configuration suivant utilise un élément d'instance <provider> pour assigner au HttpChannel les fournisseurs de récepteurs de canaux « propsetter » et « null » qui ont eux-mêmes été déclarés avec les éléments de modèle <provider>. De plus, le fournisseur de récepteur de canal « propsetter » est créé avec les propriétés du fournisseur personnalisé spécifiées comme attributs sur l'élément d'instance du fournisseur et comme paires nom/valeur de l'attribut enfant <endpoint>.

<configuration>
   <system.runtime.remoting>
      <application>
         <client>
            <wellknown 
               type="RemoteType, RemoteAssembly"
               url="http://computername:8080/RemoteType.rem"/>
         </client>
         <channels>
            <channel ref="http">
               <clientProviders>
                  <formatter ref="soap"/>
                  <provider 
                     ref="propsetter" 
                     username="bob" 
                     writeToConsole="true"
                  >
                     <endpoint url="contoso.com:9000" someProperty="xyz" />
                     <endpoint url="contoso.com:9001" someProperty="123" />
                  </provider>
                  <provider ref="null" writeToConsole="true" />
               </clientProviders>
            </channel>
         </channels>
      </application>
      <channelSinkProviders>
         <clientProviders>
            <provider 
               id="propsetter" 
               type="ChannelSinkPropertySetterProvider, SinkAssembly" 
            />
            <provider 
               id="null" 
               type="NullSinkProvider, SinkAssembly" 
            />
         </clientProviders>
      </channelSinkProviders>
      <debug loadTypes="true" />
   </system.runtime.remoting>
</configuration>

Spécifications

Fichiers de configuration : fichier de configuration de l'application, fichier de configuration machine (Machine.config)

Voir aussi

Référence

Schéma des paramètres de communication à distance

Concepts

Récepteurs et chaînes de récepteurs

Date de génération : 2010-02-13