Share via


<channel> 要素 (テンプレート)

アプリケーションがリモート オブジェクトと通信したり、リモート オブジェクトに対する要求を待機したりするために指定および構成できるチャネル テンプレートを指定します。使用するためにチャネルを登録できる場所ならどこででも、そのインスタンス チャネル要素の id 属性を、このテンプレートの ref 属性に設定できます。

<configuration>
   <system.runtime.remoting>
      <channels>
         <channel>

<channel 
   id="channelID"    type="ChannelType, ChannelAssembly"   displayName="displayName"   customChannelProperty="customChannelValue"   <!-- Available only to client configurations -->   delayLoadAsClientChannel="true|false"/>

必須属性

属性 説明
id チャネルの登録時にアプリケーションがそのチャネルを識別するために使用する文字列を指定します。このチャネル テンプレートを参照するには、この属性の値として、インスタンス チャネル要素の ref 属性の値を指定します。
type オブジェクトの完全型名と、クラスの実装が含まれているアセンブリの名前を指定します。格納しているアセンブリがグローバル アセンブリ キャッシュ内にある場合は、バージョン、カルチャ、および公開キーの情報がすべて含まれます。

省略可能属性

属性 説明
displayName このアプリケーションが使用するチャネルのリストを作成するために、.NET Framework 構成ツールによって使用されます。この属性は、.NET リモート処理システムによっては使用されません。
delayLoadAsClientChannel クライアントがチャネルをアプリケーション用に登録していない場合に、対象のチャネルを読み込むかどうかを示します。この値は Boolean 値で、クライアントの動作にだけ影響します。値が true の場合は、.NET リモート処理が実行時に該当チャネルを調べて、そのチャネルがリモート アクティべーション URL に指定されている特定のプロトコル スキームを使用したクライアント接続をサポートしているかどうかを確認することを示します。値が指定されない場合の既定値は false です。
<customChannelProperty> サポートされているカスタム チャネル プロパティを示します。チャネルがサポートするチャネル プロパティをいくつでも指定できます。カスタム チャネル プロパティは、属性と値のペアで指定します。次に例を示します。
<channel id="CustomChannel" type="Namespace.CustomChannel, CustomChannels" customProperty="PropertyValue"/>

子要素

要素 説明
<serverProviders> サーバー側のチャネル シンク呼び出しチェインに挿入されるシンクのシンク プロバイダを指定します。プロバイダが指定されている場合は、それらのプロバイダによって、チャネルの既定値が完全にオーバーライドされます。<channel> テンプレート要素内に 1 回だけ指定できます。
<clientProviders> クライアント側のチャネル シンク呼び出しチェインに挿入されるシンクのシンク プロバイダを指定します。プロバイダが指定されている場合は、それらのプロバイダによって、チャネルの既定値が完全にオーバーライドされます。<channel> テンプレート要素内に 1 回だけ指定できます。

解説

チャネル テンプレートは、マシン構成ファイル、アプリケーション ファイル、または RemotingConfiguration.Configure() の呼び出しによって読み込まれるその他のファイルで指定できます。

次の構成ファイルは、<channels> テンプレート要素を使用して、id が "httpbinary" であり、BinaryClientFormatterSink を使用してリモート呼び出しをシリアル化する HttpChannel を宣言しています。次に、<application> 要素内の <channel> インスタンス要素に ref="httpbinary" と指定することにより、クライアント アプリケーションが特定のチャネル構成を使用するように要求しています。最後に、"propsetter" チャネル シンク プロバイダを追加し、このチャネル シンク プロバイダによって使用されるカスタム構成要素をいくつか渡します。type 属性を使用してグローバル アセンブリ キャッシュにあるアセンブリ内の型を指定するには、バージョン、カルチャ、および公開キーの情報を含む完全な型情報が必要です。次の例の type 属性では、簡略にするためにこの情報が省略されています。

<configuration>
   <system.runtime.remoting>
      <channelSinkProviders>
         <clientProviders>
            <provider 
               id="propsetter" 
               type="ChannelSinkPropertySetterProvider, PropsSink" 
            />
         </clientProviders>
      <channels>
         <channel 
            type="System.Runtime.Remoting.Channels.Http.HttpChannel, System.Runtime.Remoting, ...." 
            id="httpbinary"
         >
            <clientProviders>
               <formatter                   type="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider, System.Runtime.Remoting, ...."
               />
            </clientProviders>
         </channel>
      </channels>
      <application>
         <channels>
            <channel ref="httpbinary">
               <clientProviders>
                  <provider 
                     ref="propsetter" 
                     username="somename" 
                     writeToConsole="true"
                  >
                     <endpoint url="contoso.com:9000" password="xyz" />
                     <endpoint url="contoso.com:9001" password="123" />
                  </provider>
               </clientProviders>
            </channel>
         </channels>
         <client>
            <wellknown 
               url="http://computername:80/RemoteType.rem"
               type="RemoteType, RemoteAssembly"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

必要条件

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

参照

リモート処理設定スキーマ | HttpChannel クラス | HttpClientChannel クラス | HttpServerChannel クラス | TcpChannel クラス | TcpClientChannel クラス | TcpServerChannel クラス