<formatter> Elemento (Plantilla)

Este tema es específico de una tecnología heredada que se mantiene para la compatibilidad con versiones anteriores con aplicaciones existentes y no se recomienda para nuevo desarrollo. Las aplicaciones distribuidas se deberían desarrollar utilizando  Windows Communication Foundation (WCF).

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

<configuración>

<system.runtime.remoting>

<channelSinkProviders>

<clientProviders>

<formatter>

Un proveedor de formateadores especificado aquí se convierte en una plantilla que utilizarán las instancias de <formatter>.

<configuración>

<system.runtime.remoting>

<channelSinkProviders>

<serverProviders>

<formatter>

Un proveedor de formateadores especificado aquí también se convierte en una plantilla que utilizarán las instancias de <formatter>.

<formatter  
   id="FormatterID"
   type="FormatterSinkProviderType, FormatterAssembly"
   customFormatterProperty="customProperty"
   includeVersions="true"
   strictBinding="false"
...typeFilterLevel="Low | Full"
/>

Atributos opcionales

Atributo Descripción

customFormatterProperty

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 IDictionaryen el constructor del proveedor.

Aquí también se pueden especificar los datos de los proveedores de receptores personalizados. Solo 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.

includeVersions

Indica que un formateador de envío incluye toda la información de versión del ensamblado y de tipo al serializar la información de tipo. Para obtener más información, vea la sección Comentarios que figura a continuación. El valor predeterminado de ambos formateadores proporcionados por el sistema es true.

strictBinding

Indica que un formateador de recepción intentará primero identificar el tipo mediante la información de versión completa si existe antes de usar solo el nombre de tipo y de ensamblado sin la información de versión. Para obtener más información, vea la sección Comentarios que figura a continuación. El valor predeterminado de ambos formateadores proporcionados por el sistema es false.

typeFilterLevel

Valor de cadena que especifica el nivel de deserialización automática que intenta lograr un formateador en la cadena de receptor de canal del servidor. Los valores admitidos son Low (valor predeterminado) y Full. Para obtener más información sobre los niveles de deserialización, vea Deserialización automática en .NET Remoting.

Esta propiedad la admite únicamente la versión 1.1 de .NET Framework en las siguientes plataformas: Windows 98, Windows NT 4.0, Windows Millennium, Windows 2000, Windows XP Home, Windows XP Professional y la familia de Windows Server 2003.

Atributos requeridos

Atributo Descripción

id

Especifica una cadena que identifica este proveedor de receptores de formateador. Otros pueden utilizar esta cadena en su atributo ref para establecer un enlace con este proveedor de receptores de formateador.

tipo

Especifica el nombre de tipo completo del proveedor de receptores de formateador 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é global de ensamblados.

Notas

Se puede hacer referencia a un formateador especificado aquí mediante un elemento de instancia <formatter> ya sea en otra parte de este archivo de configuración o en otro cargado por la misma aplicación.

En la siguiente tabla se describe la interacción entre los atributos includeVersions y strictBinding cuando aparecen conjuntamente.

includeVersions (formateador de envío) strictBinding (formateador de recepción) Modo en que se carga el tipo

true

true

Se carga el tipo exacto, o en caso contrario, se produce la excepción TypeLoadException.

false

true

Se carga el tipo utilizando únicamente el nombre de tipo y de ensamblado; en caso contrario, se produce la excepción TypeLoadException.

true

false

Se carga el tipo exacto si está presente; en caso contrario, se carga el tipo utilizando únicamente el nombre de tipo y de ensamblado. Si se produce un error, se produce la excepción TypeLoadException.

false

false

Se carga el tipo utilizando únicamente el nombre de tipo y de ensamblado; en caso contrario, se produce la excepción TypeLoadException.

Ejemplo

Como en el siguiente archivo de configuración se utilizan las instancias de <clientProviders> , es preciso especificar todos los formateadores y los proveedores que debe utilizar el canal. En este caso, el elemento <formatter> hace referencia a SoapClientFormatterSink y utiliza un elemento de instancia a <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 crea 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" 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>

Requisitos

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

Vea también

Referencia

Esquema de configuración de la comunicación remota
BinaryClientFormatterSink
SoapClientFormatterSink
BinaryServerFormatterSink
SoapServerFormatterSink

Fecha de compilación: 2010-02-13