ObjectManager クラス

逆シリアル化されたオブジェクトを追跡します。

この型のすべてのメンバの一覧については、ObjectManager メンバ を参照してください。

System.Object
   System.Runtime.Serialization.ObjectManager

Public Class ObjectManager
[C#]
public class ObjectManager
[C++]
public __gc class ObjectManager
[JScript]
public class ObjectManager

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

逆シリアル化中に、 FormatterObjectManager に照会して、シリアル化ストリームのオブジェクトへの参照が逆シリアル化済みのオブジェクトを参照しているのか (後方参照)、またはまだ逆シリアル化されていないオブジェクトを参照しているのか (前方参照) どうかを判断します。シリアル化ストリームの参照が前方参照である場合は、 FormatterObjectManager によってフィックスアップを登録します。シリアル化ストリームの参照が後方参照である場合は、 Formatter がすぐにその参照を完了します。フィックスアップとは、オブジェクトの逆シリアル化処理で、まだ完了していないオブジェクト参照を完了する処理を指します。要求したオブジェクトが逆シリアル化された後で、 ObjectManager がその参照を完了します。

ObjectManager は、フィックスアップ順序を指示する一連の規則に従います。 ISerializable を実装しているか、または ISerializationSurrogate を持っているすべてのオブジェクトは、オブジェクト ツリーが逆シリアル化されるときに使用できる SerializationInfo を使用して送信したオブジェクトをすべて持つことができます。ただし、親オブジェクトは、自らが完全に逆シリアル化されたときに、そのすべての子オブジェクトも完成されているとは仮定できません。すべての子オブジェクトは存在しますが、すべての孫オブジェクトが存在するとは限りません。オブジェクトがその子オブジェクトでのコードの実行に依存する、なんらかのアクションを実行する必要がある場合は、このアクションを延期し、 IDeserializationCallback インターフェイスを実装して、このインターフェイスでコール バックされたときにだけコードを実行できます。

必要条件

名前空間: System.Runtime.Serialization

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

ObjectManager メンバ | System.Runtime.Serialization 名前空間