Partager via


Élément <formatter> (modèle)

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 formateur qui doit être inséré dans la chaîne du récepteur de canal client ou serveur. Il existe deux hiérarchies possibles pour l'inclusion de cet élément.

<configuration>

<system.runtime.remoting>

<channelSinkProviders>

<clientProviders>

<formatter>

Un fournisseur de formateur spécifié à cet emplacement devient un modèle à utiliser par les instances <formatter>.

<configuration>

<system.runtime.remoting>

<channelSinkProviders>

<serverProviders>

<formatter>

Un fournisseur de formateur spécifié à cet emplacement devient également un modèle à utiliser par les instances <formatter>.

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

Attributs facultatifs

Attribut Description

customFormatterProperty

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 en tant que ICollection du SinkProviderData dans le constructeur du fournisseur.

includeVersions

Indique qu'un formateur d'envoi inclut des informations complètes de version d'assembly et de type lors de la sérialisation des informations de type. Pour les informations importantes, consultez la section Notes ci-dessous. La valeur par défaut pour les deux formateurs fournis par le système est true.

strictBinding

Indique qu'un formateur de réception essaiera d'abord d'identifier le type à l'aide des informations de version complètes si elles existent avant d'utiliser uniquement le nom du type et de l'assembly sans les informations de version. Pour les informations importantes, consultez la section Notes ci-dessous. La valeur par défaut pour les deux formateurs fournis par le système est false.

typeFilterLevel

Valeur de chaîne spécifiant le niveau de désérialisation automatique que tente un formateur dans la chaîne de récepteurs de canal serveur. Les valeurs prises en charge sont Low (valeur par défaut) et Full. Pour plus d'informations sur les niveaux de désérialisation, consultez Automatic Deserialization in .NET Remoting.

Cette propriété n'est prise en charge que dans le .NET Framework version 1.1 sur les plateformes suivantes : Windows 98, Windows NT 4.0, Windows Millennium, Windows 2000, Windows XP Édition Familiale, Windows XP Professionnel et la famille Windows Server 2003.

Attributs requis

Attribut Description

id

Spécifie une chaîne qui identifie ce fournisseur de récepteur de formateur. Les autres peuvent utiliser cette chaîne dans leur attribut ref pour créer une liaison vers ce fournisseur de récepteur de formateur.

type

Spécifie le nom complet du type du fournisseur de récepteur de formateur et le nom de l'assembly qui contient 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.

Notes

Un formateur spécifié à cet emplacement peut être référencé par un élément d'instance <formatter> à tout autre endroit du fichier de configuration ou d'un fichier de configuration chargé par la même application.

Le tableau suivant décrit l'interaction entre les attributs includeVersions et strictBinding lorsqu'ils apparaissent ensemble.

includeVersions (formateur d'envoi) strictBinding (formateur de réception) Mode de chargement du type

true

true

Le type exact est chargé ou une exception TypeLoadException est levée.

false

true

Le type est chargé à l'aide du nom du type et du nom de l'assembly uniquement ou une exception TypeLoadException est levée.

true

false

Le type exact est chargé s'il est présent ; dans le cas contraire, le type est chargé à l'aide du nom du type et du nom de l'assembly uniquement. En cas d'échec, une exception TypeLoadException est levée.

false

false

Le type est chargé à l'aide du nom du type et du nom de l'assembly uniquement ou une exception TypeLoadException est levée.

Exemple

Comme le fichier de configuration suivant utilise les instances <clientProviders>, vous devez spécifier tous les formateurs et fournisseurs qui doivent être utilisés par le canal. Dans ce cas, l'élément <formatter> fait référence au SoapClientFormatterSink et 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
BinaryClientFormatterSink
SoapClientFormatterSink
BinaryServerFormatterSink
SoapServerFormatterSink

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