Share via


<provider> 要素 (インスタンス)

このトピックの対象は、既存のアプリケーションとの下位互換性のために残されているレガシ テクノロジに特定されています。新規の開発には、このトピックを適用しないでください。分散アプリケーションは、現在は Windows Communication Foundation (WCF) を使用して開発する必要があります。

チャネル シンク チェーンに挿入されるチャネル シンクのチャネル シンク プロバイダーを指定します。

<configuration>

   <system.runtime.remoting>

      <channels>

         <channel>

            <serverProviders>

               <provider/>

ここで指定されたプロバイダーは、対象のチャネルの既定のサーバー プロバイダーをオーバーライドして、そのチャネル テンプレートの新しい既定のプロバイダーになります。

<configuration>

   <system.runtime.remoting>

      <channels>

         <channel>

            <clientProviders>

               <provider/>

ここで指定されたプロバイダーは、対象のチャネルの既定のクライアント プロバイダーをオーバーライドして、そのチャネル テンプレートの新しい既定のプロバイダーになります。

<configuration>

   <system.runtime.remoting>

      <application>

         <channels>

            <channel>

               <serverProviders>

                  <provider/>

ここで指定されたサーバー プロバイダーは、対象のチャネル インスタンスの既定のプロバイダーをオーバーライドします。

<configuration>

   <system.runtime.remoting>

      <application>

         <channels>

            <channel>

               <clientProviders>

                  <provider/>

ここで指定されたクライアント プロバイダーは、対象のチャネル インスタンスの既定のプロバイダーをオーバーライドします。

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

省略可能属性

属性 説明

customChannelSinkProperty

サポートされているカスタム チャネル シンク プロパティを示します。カスタム チャネル シンク プロバイダーとそのシンクがサポートする、プロバイダー プロパティおよびチャネル シンク プロパティをいくつでも指定できます。カスタム チャネル シンク プロパティは、属性と値のペアで指定します。次に例を示します。

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

customChannelSinkProperty 属性とその値は、プロバイダーのコンストラクターで IDictionary 引数として使用できます。

ここには、カスタム シンク プロバイダーのデータも指定できます。サポートされるノードのレベルは 1 つだけです。次に例を示します。

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

この追加情報は、プロバイダーのコンストラクターで SinkProviderDataICollection として使用できます。

必須属性

属性 説明

type

チャネル シンク プロバイダーの完全型名と、プロバイダーの実装が含まれているアセンブリの名前を指定します。格納しているアセンブリがグローバル アセンブリ キャッシュ内にある場合は、バージョン、カルチャ、および公開キーの情報がすべて含まれます。この属性は、ref 属性を指定しない場合にだけ指定する必要があります。

ref

クライアントが使用するために登録するチャネル シンクのチャネル シンク プロバイダー テンプレートの ID を指定します。ref 属性を指定する場合は、type 属性を指定する必要はありません。

解説

別のプロバイダー テンプレートを参照するには、そのテンプレートの id 値を対象のインスタンスの ref 属性として指定します。プロバイダーを指定すると、そのプロバイダーによって既定のプロバイダーがすべてオーバーライドされます。チャネル シンクの呼び出しチェインの途中で他のプロバイダーを呼び出すには、それらのプロバイダーもここで指定する必要があります。

<provider> 要素のインスタンスは、4 つの場所で指定できます。<serverProviders> 要素または <clientProviders> 要素内の <channel> テンプレート要素の下で指定した場合、この要素に指定されたプロバイダーは、対象となる特定のチャネルがアプリケーション インスタンスによって参照されたときに、そのチャネルの既定のシンク プロバイダーとなります。<application> 要素の下で指定した場合、テンプレート内で対象チャネルの既定のシンクとして構成された可能性のある既定のシンクがすべて、この要素によってオーバーライドされます。ここで指定されたプロバイダーによって、テンプレート内で指定されている既定のプロバイダーがオーバーライドされるため、他にも呼び出しチェーンに挿入する必要があるプロバイダーがある場合は、それらもすべてこの要素に指定しておく必要があります。

次の構成ファイルは、<provider> インスタンス要素を使用して、<provider> テンプレート要素で宣言されている "propsetter" および "null" チャネル シンク プロバイダーを HttpChannel に割り当てています。また、"propsetter" チャネル シンク プロバイダーは、<provider> インスタンス要素の属性として、および子 <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>

必要条件

構成ファイル : アプリケーション構成ファイル、マシン構成ファイル (Machine.config)

参照

リファレンス

リモート処理設定スキーマ

概念

シンクとシンク チェーン

ビルド日:2010-02-13