Share via


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

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

チャネル シンク チェーンに挿入されるフォーマッタ シンクのチャネル シンク プロバイダーを指定します。この要素は、アプリケーション構成ファイルとマシン構成ファイルに出現する可能性があります。

<configuration>

<system.runtime.remoting>

<channels>

<channel>

<serverProviders>

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

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

<configuration>

<system.runtime.remoting>

<channels>

<channel>

<clientProviders>

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

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

<configuration>

<system.runtime.remoting>

<application>

<channels>

<channel>

<serverProviders>

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

ここで指定されたフォーマッタは、対象のチャネル インスタンスの既定のチャネル シンク チェーンをオーバーライドします。

<configuration>

<system.runtime.remoting>

<application>

<channels>

<channel>

<clientProviders>

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

ここで指定されたフォーマッタは、対象のチャネル インスタンスの既定のチャネル シンク チェーンをオーバーライドします。

Schema Hierarchy

<configuration>
  <system.runtime.remoting> 要素
    <application> 要素
      <channels> 要素 (インスタンス)
        <channel> 要素 (インスタンス)
          <clientProviders> 要素 (インスタンス)
            <formatter> 要素 (インスタンス)

構文

<formatter 
   ref="FormatterReference"
   type="FormatterSinkProviderType, FormatterAssembly"
   customFormatterProperty="customProperty"
   includeVersions="true"
   strictBinding="false"
...typeFilterLevel="Low | Full"
/>

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明

ref

必須属性

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

type

必須属性

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

customFormatterProperty

省略可能属性

サポートされているカスタム フォーマッタ プロパティを示します。カスタム フォーマッタがサポートするフォーマッタ プロパティをいくつでも指定できます。カスタム フォーマッタ プロパティは、属性と値のペアで指定します。たとえば、次のように指定します。<formatter id="CustomFormatterSinkProvider" type="Namespace.CustomFormatterSinkProvider, CustomFormatters" customFormatterProperty="FormatterPropertyValue"/>

includeVersions

省略可能属性

型情報をシリアル化するときに、送信側のフォーマッタに完全な型情報とアセンブリ バージョン情報が含まれることを示します。重要な詳細については、下記の「解説」を参照してください。システムによって提供される 2 つのフォーマッタの既定値は true です。

strictBinding

省略可能属性

完全なバージョン情報がある場合には、受信側のフォーマッタがバージョン情報を含まない型名とアセンブリ名だけを使用して型を識別する前に、完全なバージョン情報を使用して型を識別しようとすることを示します。重要な詳細については、下記の「解説」を参照してください。システムによって提供される 2 つのフォーマッタの既定値は false です。

typeFilterLevel

省略可能属性

サーバー チャネル シンク チェーンのフォーマッタが試みる自動逆シリアル化のレベルを指定する文字列値です。サポートされる値は Low (既定値) および Full です。逆シリアル化レベルの詳細については、「.NET リモート処理での自動逆シリアル化」を参照してください。

このプロパティは、Windows 98、Windows NT 4.0、Windows Millennium Edition、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003 ファミリの各プラットフォームの .NET Framework Version 1.1 だけでサポートされています。

子要素

なし。

親要素

要素 説明

application

アプリケーションが使用および公開するリモート オブジェクトに関する情報を指定します。

channel

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

channels

アプリケーションがリモート オブジェクトと通信するために使用するチャネル テンプレートを指定します。この要素で宣言したチャネルは、チャネルが登録される場所なら、どこからでも参照できます。

clientProviders

対象のチャネル テンプレートが構成ファイル内の別の場所から参照された場合に、そのチャネル テンプレートに対するクライアント側の既定のチャネル シンク呼び出しチェーンに挿入されるチャネル シンクのプロバイダーを指定します。下のいずれかの位置でプロバイダーを指定すると、対象のチャネルの既定のチャネル シンクがオーバーライドされます。テンプレートのチャネル シンク呼び出しチェーンに、これらの既定のチャネル シンクも挿入する必要がある場合は、それらの既定のチャネル シンクも同様にこの要素で指定する必要があります。

configuration

共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。

system.runtime.remoting

リモート オブジェクトおよびチャネルに関する情報を指定します。

解説

プロバイダー テンプレートを参照するには、そのテンプレートの id 値を対象のインスタンスの ref 値として指定します。テンプレートはいくつでも宣言できますが、チャネル シンク呼び出しチェーンに挿入できるフォーマッタ シンクは 1 つだけです。

<formatter> インスタンス要素は、4 つの場所で指定できます。<serverProvider> 要素または <clientProvider> 要素内の <channel> テンプレート要素の下で指定した場合、この要素に指定されたフォーマッタは、対象のチャネルがアプリケーションの <channel> インスタンスによって参照されたときに、そのチャネルの既定フォーマッタをすべてオーバーライドし、自身が既定のフォーマッタ シンクになります。<application> 要素の下で指定した場合は、現在のチャネル インスタンスまたはチャネル テンプレートで宣言された可能性のある全フォーマッタ シンクが、この要素によってオーバーライドされます。

includeVersions 属性と strictBinding 属性を両方とも指定した場合に、2 つの属性の間で発生する動作を次の表に示します。

includeVersions (送信側のフォーマッタ) strictBinding (受信側のフォーマッタ) 型の読み込み方法

true

true

厳密一致する型が読み込まれるか、TypeLoadException がスローされます。

false

true

型名とアセンブリ名だけを使用して型が読み込まれるか、TypeLoadException がスローされます。

true

false

厳密一致する型がある場合は、その型が読み込まれます。厳密一致する型がない場合は、型名とアセンブリ名だけを使用して型が読み込まれます。上記の動作が失敗した場合は、TypeLoadException がスローされます。

false

false

型名とアセンブリ名だけを使用して型が読み込まれるか、TypeLoadException がスローされます。

次の構成ファイルは、<formatter> インスタンス要素を使用する <channel> インスタンスを宣言し、既定の BinaryClientFormatterSinkProviderHttpChannel を使用してバイナリ シリアル化を行うように指定しています。

<configuration>
   <system.runtime.remoting>
      <application>
         <channels>
            <channel ref="http">
               <clientProviders>
                  <formatter ref="binary"/>
               </clientProviders>
            </channel>
         </channels>
         <client>
            <wellknown 
               url="http://computername:80/RemoteType.rem" 
               type="RemoteType, RemoteAssembly"
            />
         </client>
      </application>
   </system.runtime.remoting>
</configuration>

参照

リファレンス

リモート処理設定スキーマ
BinaryClientFormatterSink
SoapClientFormatterSink
BinaryServerFormatterSink
SoapServerFormatterSink

ビルド日:2010-02-13