Elemento <provider> (istanza)

Contiene il provider di un sink di canale da inserire nella catena di sink di canale.

<configuration>

<system.runtime.remoting>

<channels>

<channel>

<serverProviders>

<provider/>

I provider specificati eseguono l'override dei provider del server predefiniti per il canale in questione, sostituendosi a essi per tale modello di canale.

<configuration>

<system.runtime.remoting>

<channels>

<channel>

<clientProviders>

<provider/>

I provider specificati eseguono l'override dei provider del client predefiniti per il canale in questione, sostituendosi a essi per tale modello di canale.

<configuration>

<system.runtime.remoting>

<application>

<channels>

<channel>

<serverProviders>

<provider/>

I provider del server specificati eseguono l'override dei provider predefiniti per l'istanza di canale.

<configuration>

<system.runtime.remoting>

<application>

<channels>

<channel>

<clientProviders>

<provider/>

I provider del client specificati eseguono l'override dei provider predefiniti per l'istanza di canale.

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

Attributi facoltativi

Attributo Descrizione

customChannelSinkProperty

Indica una proprietà personalizzata di sink di canale supportata. È possibile specificare un numero qualsiasi di proprietà di sink di provider e di canale in grado di essere supportate da provider di sink di canale personalizzati e dai propri sink. Una proprietà personalizzata di sink di canale verrà specificata con una coppia attributo/valore. Nell’esempio

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

L'attributo customChannelSinkProperty e il relativo valore saranno disponibili come argomento IDictionary nel costruttore del provider.

È anche possibile specificare in questo ambito i dati personalizzati del provider di sink. È supportato un solo livello di nodi. Nell’esempio

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

le informazioni aggiuntive saranno disponibili come ICollection di SinkProviderData nel costruttore del provider.

Attributi obbligatori

Attributo Descrizione

type

Specifica il nome completo del tipo del provider di sink di canale e il nome dell'assembly contenente l'implementazione del provider. Se l'assembly si trova nella Global Assembly Cache, tale nome include le informazioni relative alla versione, alla lingua e alla chiave pubblica. Questo attributo è necessario solo se non viene utilizzato un attributo ref.

ref

Specifica l'ID del modello di provider di sink di canale per il sink di canale che il client dell'utente desidera registrare per l'utilizzo. Se viene specificato un attributo ref, non è necessario specificare un attributo type.

Note

È possibile fare riferimento a un altro modello di provider fornendo il valore ID di tale modello per l'attributo ref di questa istanza. Se vengono specificati provider, viene eseguito l'override di tutti i provider predefiniti. Se si desidera richiamare altri provider nel corso della catena di chiamate ai sink di canale, essi devono essere specificati qui.

Le istanze dell'elemento <provider> possono essere presenti in quattro posizioni. Quando viene specificato sotto un elemento modello <channel>, sia sotto l'elemento <serverProviders> che sotto l'elemento <clientProviders>, questo elemento specifica un provider che sarà quello di sink predefinito per quel particolare canale quando l'istanza di un'applicazione vi fa riferimento. Se viene specificato sotto un elemento <application>, viene eseguito l'override di qualsiasi sink predefinito che possa essere stato configurato per il canale, se si trovava in un modello. È necessario specificare in questo ambito qualsiasi altro provider che si desidera includere nella catena di chiamate. In tal modo verrà eseguito l'override di tutti i valori predefiniti in qualsiasi modello.

Esempio

Nel file di configurazione seguente viene utilizzato un elemento di istanza <provider> per assegnare al canale HttpChannel i provider di sink di canale "propsetter" e "null" che sono stati dichiarati con elementi del modello <provider>. Inoltre, il provider di sink di canale "propsetter" viene creato con le proprietà personalizzate del provider specificate come attributi nell'elemento di istanza del provider e come coppie nome/valore dell'attributo figlio <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" 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>

Requisiti

File di configurazione: file di configurazione dell'applicazione, file di configurazione del computer (Machine.config)

Vedere anche

Riferimenti

Schema delle impostazioni remote

Concetti

Sink e catene dei sink