値渡しによるマーシャリング

オブジェクトは、作成されたアプリケーション ドメイン内でのみ有効です。オブジェクトをパラメータとして渡したり、結果として返したりする処理を試行すると、そのオブジェクトが MarshalByRefObject から派生しているか、または Serializable としてマークされている場合を除いて、その試行は失敗します。Serializable としてマークされていると、オブジェクトは自動的にシリアル化され、アプリケーション ドメイン間で転送されます。その後、逆シリアル化され、転送先のアプリケーション ドメインにそのオブジェクトの同一コピーが作成されます。この処理は一般に、値渡しによるマーシャリングと呼ばれます。

オブジェクトが MarshalByRefObject から派生している場合は、そのオブジェクト自体ではなく、オブジェクト参照がアプリケーション ドメイン間で渡されます。MarshalByRefObject から派生したオブジェクトを、Serializable としてマークすることもできます。このオブジェクトがリモート処理で使用されると、サロゲート セレクタ (SurrogateSelector) によって事前構成された、シリアル化を実行するフォーマッタがシリアル化プロセスを制御し、MarshalByRefObject から派生したすべてのオブジェクトをプロキシに置き換えます。SurrogateSelector を使用しない場合、シリアル化アーキテクチャは「シリアル化プロセスの手順」で説明されている標準のシリアル化のルールに従います。

関連項目

その他の技術情報

シリアル化の概念
Remote Objects
XML シリアル化および SOAP シリアル化

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.