Compartir a través de


Elemento <clientProviders> (instancia)

Contiene los proveedores de receptores de canal que van a formar parte de la cadena de llamadas de receptores de canal predeterminada del cliente correspondiente a esta plantilla de canal cuando se hace referencia a la plantilla en otro lugar del archivo de configuración. Al especificar proveedores en cualquiera de las posiciones que figuran más abajo, se reemplazan los receptores de canal predeterminados correspondientes a este canal; si desea que cualquiera de estos receptores de canal predeterminados queden insertados en la cadena de llamadas de receptores de canal correspondiente a esta plantilla, deberá especificarlos aquí.

<configuration>
   <system.runtime.remoting>
      <channels>
         <channel>
**            <clientProviders>**

En este caso, los proveedores reemplazan los proveedores predeterminados de este canal en todos los lugares donde se haga referencia a esta plantilla de canal.

<configuration>
   <system.runtime.remoting>
      <application>
         <channels>
           <channel>
**               <clientProviders>**

En este caso, los proveedores reemplazan los proveedores predeterminados sólo para esta instancia de canal.

<clientProviders>
   <formatter/>
   <provider/>
</clientProviders>

Elementos secundarios

Elemento Descripción
<formatter> Contiene un receptor de formateador que se va a insertar en la cadena de llamadas de receptores de canal. Puede producirse una sola vez en el elemento de instancia <clientProviders>.
<provider> Contiene un receptor de canal que se va a insertar en la cadena de llamadas de receptores de canal. Puede producirse una sola vez o varias veces en el elemento de instancia <clientProviders>.

Comentarios

Cuando se utilizan en un elemento de plantilla de canal, todos los proveedores declarados o a los que se haga referencia en el nivel mostrado reemplazarán los proveedores predeterminados del canal y se convertirán en los proveedores predeterminados si se hace referencia al canal en otro lugar del archivo de configuración. Es importante darse cuenta de que se reemplazarán todos los proveedores o formateadores predeterminados de este canal cuando se utilice este elemento. Si desea que dichos proveedores o formateadores formen parte de esta plantilla de canal además de cualquier proveedor personalizado, deberá especificar todos los proveedores y el formateador que se han de usar con este canal cuando otros hagan referencia a él.

Cuando se utilizan en una instancia de canal, todos los proveedores declarados o a los que se haga referencia en el nivel mostrado reemplazarán los proveedores predeterminados del canal sólo para esta instancia de canal. Si esta instancia hace referencia a una plantilla que declara clientProviders, los proveedores indicados aquí también los reemplazarán completamente.

Ejemplo

En el siguiente archivo de configuración se utiliza un elemento de plantilla <channels> para declarar un HttpChannel con el id "httpbinary" y se utiliza el elemento de plantilla <clientProviders> con el fin de especificar BinaryClientFormatterSink para serializar las llamadas remotas. A continuación, se solicita que esta aplicación de cliente utilice dicha configuración de canal en concreto especificando ref="httpbinary" en el elemento de instancia <channel> dentro del elemento <application>. Finalmente, se utiliza un elemento de instancia <clientProviders> para agregar un proveedor de receptores de canal "propsetter" y se pasan algunos elementos de configuración personalizados que utilizará dicho proveedor de receptores de canal. Observe que el uso del atributo type para especificar un tipo en un ensamblado que se encuentra en la caché de ensamblados global requiere información completa sobre el tipo, incluida la información sobre la versión, referencia cultural y clave pública. Para mayor brevedad, dicha información se ha omitido en los atributos type que aparecen a continuación.

<configuration>
   <system.runtime.remoting>
      <channelSinkProviders>
         <clientProviders>
            <provider 
               id="propsetter" 
               type="ChannelSinkPropertySetterProvider, PropsSink" 
            />
         </clientProviders>
      <channels>
         <channel 
            type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting" 
            id="httpbinary"
         >
            <clientProviders>
               <formatter                   type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting"
               />
            </clientProviders>
         </channel>
      </channels>
      <application>
         <channels>
            <channel ref="httpbinary">
               <clientProviders>
                  <provider 
                     ref="propsetter" 
                     username="somename" 
                     writeToConsole="true"
                  >
                     <endpoint url="contoso.com:9000" password="xyz" />
                     <endpoint url="contoso.com:9001" password="123" />
                  </provider>
               </clientProviders>
            </channel>
         </channels>
         <client>
            <wellknown 
               url="http://computername:80/RemoteType.rem"                type="RemoteType, RemoteAssembly"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

Requisitos

Archivos de configuración: Archivo de configuración de la aplicación, archivo de configuración del equipo (Machine.config)

Vea también

Esquema de la configuración de la interacción remota | Receptores y cadenas de receptores