Compartir a través de


Elemento <provider> (plantilla)

Contiene la plantilla de proveedores de receptores de canal correspondiente a un receptor de canal que se ha de insertar en la cadena de receptores de canal del servidor o cliente. Existen dos posibles jerarquías para la inclusión de este elemento.

<configuration>
   <system.runtime.remoting>
      <channelSinkProviders>
         <clientProviders>
            <provider>

A los proveedores que se especifiquen aquí pueden hacer referencia las instancias <provider> para su uso.

<configuration>
   <system.runtime.remoting>
      <channelSinkProviders>
         <serverProviders>
            <provider>

A los proveedores que se especifiquen aquí también pueden hacer referencia las instancias <provider> para su uso.

<provider 
   id="ProviderID"    type="ProviderType, ProviderAssembly"       customChannelSinkProperty="customProperty"/>

Atributos opcionales

Atributo Descripción
customChannelSinkProperty Indica una propiedad de receptor de canal personalizado compatible. Se puede especificar cualquier número de propiedades de proveedor y receptor de canal que admitan los proveedores de receptores de canal personalizados y sus receptores. Una propiedad de receptor de canal personalizado se especifica con un par atributo/valor. En el ejemplo:
<provider id="CustomChannelSinkProvider" type="Namespace.CustomChannelSinkProvider, CustomChannels" customChannelSinkProperty="ChannelSinkPropertyValue"/>

el atributo customChannelSinkProperty y su valor estarán disponibles como un argumento IDictionary en el constructor del proveedor.

También se pueden especificar aquí los datos de los proveedores de receptores personalizados. Sólo se admite un nivel de nodos. En el ejemplo:

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

la información adicional estará disponible como ICollection de SinkProviderData en el constructor del proveedor.

Atributos requeridos

Atributo Descripción
id Especifica una cadena que identifica este proveedor de receptores de canal. Otros pueden utilizar esta cadena en su atributo ref para enlazar a este proveedor de receptores de canal.
type Especifica el nombre de tipo completo del proveedor de receptores de canal así como el nombre del ensamblado que contiene la implementación de proveedores. Esto incluye la información de versión, referencia cultural y clave pública si el ensamblado contenedor está en la caché de ensamblados global.

Ejemplo

En el siguiente archivo de configuración se utiliza un elemento de instancia <provider> para asignar al HttpChannel los proveedores de receptores de canal "propsetter" y "null" que a su vez han sido declarados con los elementos de plantilla <provider>. Además, el proveedor de receptores de canal "propsetter" se creará con las propiedades de proveedor personalizado especificadas como atributos en el elemento de instancia del proveedor y como los pares nombre/valor del atributo <endpoint> secundario.

<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" password="xyz" />
                     <endpoint url="contoso.com:9001" password="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>

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