Freigeben über


<provider>-Element (Instanz)

Enthält den Channelempfänger-Provider für einen Channelempfänger, der in die Channelempfängerkette eingefügt werden soll.

<configuration>
   <system.runtime.remoting>
      <channels>
         <channel>
            <serverProviders>
               <provider/>

Hier überschreibt ein Provider den Standardserverprovider für diesen Channel und wird zum neuen Standardprovider für diese Channelvorlage.

<configuration>
   <system.runtime.remoting>
      <channels>
         <channel>
            <clientProviders>
               <provider/>

Hier überschreibt ein Provider den Standardclientprovider für diesen Channel und wird zum neuen Standardprovider für diese Channelvorlage.

<configuration>
   <system.runtime.remoting>
      <application>
         <channels>
            <channel>
               <serverProviders>
                  <provider/>

Hier überschreibt ein Serverprovider den Standardprovider für diese Channelinstanz.

<configuration>
   <system.runtime.remoting>
      <application>
         <channels>
            <channel>
               <clientProviders>
                  <provider/>

Hier überschreibt ein Clientprovider den Standardprovider für diese Channelinstanz.

<provider
   ref="ProviderTemplateReference"   type="ProviderType, ProviderAssembly"   customChannelSinkProperty="customProperty"/>

Optionale Attribute

Attribut Beschreibung
customChannelSinkProperty 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
<provider id="CustomChannelSinkProvider" type="Namespace.CustomChannelSinkProvider, CustomChannels" customChannelSinkProperty="ChannelSinkPropertyValue"/>

sind das customChannelSinkProperty-Attribut und sein Wert als IDictionary-Argument im Konstruktor des Providers verfügbar.

Außerdem können hier benutzerdefinierte Empfängerprovider-Daten 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 Providers verfügbar.

Erforderliche Attribute

Attribut Beschreibung
type Gibt den vollständigen Typnamen des Channelempfä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. Dieses Attribut ist nur erforderlich, wenn Sie kein ref-Attribut verwenden.
ref Gibt die ID der Vorlage für den Channelempfänger-Provider für den Channelempfänger an, den der Client zur Verwendung registrieren wird. Wenn Sie ein ref-Attribut angeben, müssen Sie kein type-Attribut festlegen.

Hinweise

Sie können auf eine andere Providervorlage verweisen, indem Sie den id-Wert dieser Vorlage für das ref-Attribut dieser Instanz bereitstellen. Durch Angeben von Providern werden alle Standardprovider überschrieben. Wenn im Verlauf der Channelempfänger-Aufrufkette andere Provider aufgerufen werden sollen, müssen Sie diese hier angeben.

Instanzen des <provider>-Elements können an vier Stellen auftreten. Wird es unter einem <channel>-Vorlagenelement angegeben (entweder im <serverProviders>- oder im <clientProviders>-Element), gibt dieses Element einen Provider an, der Standard-Empfängerprovider für den betreffenden Channel wird, wenn durch eine Anwendungsinstanz darauf verwiesen wird. Wird es unter einem <application>-Element angegeben, überschreibt das Element alle Standardempfänger, die für diesen Channel konfiguriert worden sein könnten, wenn er sich in einer Vorlage befinden würde. Alle andere Provider, die in der Aufrufkette vorhanden sein sollen, müssen Sie hier angeben, da dadurch alle Standardwerte, die in irgendeiner Vorlage festgelegt sind, überschrieben werden.

Beispiel

Die folgende Konfigurationsdatei weist mit Hilfe des <provider>-Instanzelements dem HttpChannel die "propsetter"- und "null"-Channelempfänger-Provider zu, die ihrerseits 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 | Empfänger und Empfängerketten