<formatter>-Element (Vorlage)
Enthält den Channelempfänger-Provider für einen Formatierungsempfänger, der in die Client- oder Server-Channelempfängerkette eingefügt werden soll. Für die Einfügung dieses Elements sind zwei verschiedene Hierarchien möglich.
<configuration>
<system.runtime.remoting>
<channelSinkProviders>
<clientProviders>
<formatter>
Ein hier angegebener Formatierungsprovider wird zu einer Vorlage für die Verwendung durch <formatter>-Instanzen.
<configuration>
<system.runtime.remoting>
<channelSinkProviders>
<serverProviders>
<formatter>
Ein hier angegebener Formatierungsprovider 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 einen unterstützten benutzerdefinierten Channelempfänger an. Sie können beliebig viele Eigenschaften für Provider und Channelempfänger angeben, die von benutzerdefinierten Channelempfänger-Providern und deren Empfängern unterstützt werden könnten. Eine benutzerdefinierte Channelempfänger-Eigenschaft geben Sie mit einem Attribut-Wert-Paar an. Im folgenden Beispiel
sind das Außerdem können hier benutzerdefinierte Empfängerprovider-Daten angegeben werden. Es wird nur eine Knotenebene unterstützt. Im folgenden Beispiel
sind die zusätzlichen Informationen als ICollection von SinkProviderData im Konstruktor des Providers 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 Formatierer in der Serverchannel-Empfängerkette versucht. Unterstützte Werte sind Low (der Standardwert) und Full. Weitere Informationen über Deserialisierungsebenen finden Sie unter "Automatische Deserialisierung in .NET Remoting".
Diese Eigenschaft wird nur von Version 1.1 von .NET Framework 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 Formatierungsempfänger-Provider identifiziert. Andere Elemente können diese Zeichenfolge in ihrem ref-Attribut verwenden, um eine Bindung zu diesem Formatierungsempfänger-Provider herzustellen. |
type | Gibt den vollständigen Typnamen des Formatierungsempfänger-Providers und den Namen der Assembly an, die die Providerimplementierung 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- und dem strictBinding-Attribut, wenn diese zusammen vorkommen.
includeVersions (sendendes Formatierungsprogramm) | strictBinding (empfangendes Formatierungsprogramm) | Wie wird der Typ geladen |
---|---|---|
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 Formatierer und Provider angeben, die der Channel verwenden soll. In diesem Fall verweist das <formatter>-Element auf den SoapClientFormatterSink und weist mit Hilfe des <provider>-Instanzelements dem HttpChannel die "propsetter"- und "null"-Channelempfänger-Provider zu, die mit <provider>-Vorlagenelementen deklariert wurden. Außerdem wird der "propsetter"-Channelempfänger-Provider mit den benutzerdefinierten Providereigenschaften erstellt, die als Attribute für das Provider-Instanzelement 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" 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>
Anforderungen
Konfigurationsdateien: Anwendungskonfigurationsdatei, Konfigurationsdatei für den Computer (Machine.config)
Siehe auch
Schema für Remoteeinstellungen | BinaryClientFormatterSink | SoapClientFormatterSink | BinaryServerFormatterSink | SoapServerFormatterSink