<formatter>-Element (Vorlage)

Dieses Thema bezieht sich auf eine veraltete Technologie, die zum Zwecke der Abwärtskompatibilität mit vorhandenen Anwendungen beibehalten wird und nicht für die neue Entwicklung empfohlen wird. Verteilte Anwendungen sollten jetzt mit  Windows Communication Foundation (WCF) entwickelt werden.

Enthält den Channelsenkenanbieter für eine Formatierungssenke, die in die Client- oder Server-Channelsenkenkette eingefügt werden soll. Für den Einschluss dieses Elements sind zwei verschiedene Hierarchien möglich.

<configuration>

<system.runtime.remoting>

<channelSinkProviders>

<clientProviders>

<formatter>

Ein hier angegebener Formatierungsanbieter wird zu einer Vorlage für die Verwendung durch <formatter>-Instanzen.

<configuration>

<system.runtime.remoting>

<channelSinkProviders>

<serverProviders>

<formatter>

Ein hier angegebener Formatierungsanbieter wird ebenfalls zu einer Vorlage für die Verwendung durch <formatter>-Instanzen.

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

Optionale Attribute

Attribut Beschreibung

customFormatterProperty

Gibt eine Eigenschaft für eine unterstützte benutzerdefinierte Channelsenke an. Sie können beliebig viele Eigenschaften für Anbieter und Channelsenken angeben, die von benutzerdefinierten Channelsenkenanbietern und deren Senken unterstützt werden könnten. Eine benutzerdefinierte Channelsenkeneigenschaft geben Sie mit einem Attribut-Wert-Paar an. Im folgenden Beispiel

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

ist das customChannelSinkProperty -Attribut und der zugehörige Wert als IDictionary-Argument im Konstruktor des Anbieters verfügbar.

Benutzerdefinierte Daten von Senkenanbietern können hier ebenfalls angegeben werden. Es wird nur eine Knotenebene unterstützt. Im folgenden Beispiel

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

sind die zusätzlichen Informationen als ICollection von SinkProviderData im Konstruktor des Anbieters verfügbar.

includeVersions

Gibt an, dass ein sendendes Formatierungsprogramm beim Serialisieren der Typinformationen vollständige Typ- und Assemblyversionsinformationen enthält. Wichtige Einzelheiten finden Sie im Abschnitt "Hinweise" weiter unten. Die Standardeinstellung für beide vom System bereitgestellten Formatierungsprogramme lautet true.

strictBinding

Gibt an, das ein empfangendes Formatierungsprogramm zuerst versucht, den Typ anhand der vollständigen Versionsinformationen zu identifizieren, sofern diese vorhanden sind, bevor es nur den Typ- und den Assemblynamen ohne die Versionsinformationen verwendet. Wichtige Einzelheiten finden Sie im Abschnitt "Hinweise" weiter unten. Die Standardeinstellung für beide vom System bereitgestellten Formatierungsprogramme lautet false.

typeFilterLevel

Ein Zeichenfolgenwert, der die Ebene der automatischen Deserialisierung angibt, die ein Formatierungsprogramm in der Serverchannel-Senkenkette zu verwenden versucht. Unterstützte Werte sind Low (der Standardwert) und Full. Weitere Informationen zu Deserialisierungsebenen finden Sie unter Automatische Deserialisierung in .NET-Remoting.

Diese Eigenschaft wird nur von .NET Framework, Version 1.1, für die folgenden Plattformen unterstützt: Windows 98, Windows NT 4.0, Windows Millenium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional und die Windows Server 2003-Familie.

Erforderliche Attribute

Attribut Beschreibung

id

Gibt eine Zeichenfolge an, die diesen Formatierungsenkenanbieter identifiziert. Andere Elemente können diese Zeichenfolge in ihrem ref-Attribut verwenden, um eine Bindung zu diesem Formatierungssenkenanbieter herzustellen.

Typ

Gibt den vollständigen Typnamen des Formatierungssenkenanbieters und den Namen der Assembly an, die die Anbieterimplementierung enthält. Hierzu gehören die Version, die Kultur und der öffentliche Schlüssel, wenn die übergeordnete Assembly sich im globalen Assemblycache befindet.

Hinweise

Auf einen hier angegebenen Formatierer kann durch ein <formatter>-Instanzelement an anderer Stelle in dieser Konfigurationsdatei oder in einer anderen Konfigurationsdatei verwiesen werden, die von der gleichen Anwendung geladen wird.

Die folgende Tabelle zeigt die Interaktion zwischen dem includeVersions-Attribut und dem strictBinding-Attribut, wenn diese zusammen vorkommen.

includeVersions (sendendes Formatierungsprogramm) strictBinding (empfangendes Formatierungsprogramm) Art und Weise, in der der Typ geladen wird

true

true

Der exakte Typ wird geladen, oder eine TypeLoadException-Ausnahme wird ausgelöst.

false

true

Der Typ wird nur anhand des Typ- und des Assemblynamens geladen, oder eine TypeLoadException-Ausnahme wird ausgelöst.

true

false

Der exakte Typ wird geladen, falls vorhanden. Andernfalls wird der Typ nur anhand des Typ- und des Assemblynamens geladen. Wenn dies fehlschlägt, wird eine TypeLoadException-Ausnahme ausgelöst.

false

false

Der Typ wird nur anhand des Typ- und des Assemblynamens geladen, oder eine TypeLoadException-Ausnahme wird ausgelöst.

Beispiel

Da die folgende Konfigurationsdatei <clientProviders>-Instanzen verwendet, müssen Sie alle Formatierungsprogramme und Anbieter angeben, die der Channel verwenden soll. In diesem Fall verweist das <formatter>-Element auf SoapClientFormatterSink und weist HttpChannel mithilfe des <provider>-Instanzelements den "propsetter"-Channelsenkenanbieter und den "null"-Channelsenkenanbieter zu, die selbst mit <provider>-Vorlagenelementen deklariert wurden. Außerdem wird der "propsetter"-Channelsenkenanbieter mit den benutzerdefinierten Anbietereigenschaften erstellt, die als Attribute für das Anbieterinstanzelement und als Name-Wert-Paare für das untergeordnete <endpoint>-Attribut angegeben wurden.

<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>

Anforderungen

Konfigurationsdateien: Anwendungskonfigurationsdatei, Konfigurationsdatei für den Computer (Machine.config)

Siehe auch

Verweis

Schema für Remoteeinstellungen
BinaryClientFormatterSink
SoapClientFormatterSink
BinaryServerFormatterSink
SoapServerFormatterSink

Erstellungsdatum: 2010-02-13