永続ストレージ

オブジェクトのフィールドの値をディスクに格納しておき、後でこのデータを取得する必要が生じることがよくあります。これはシリアル化を使用しなくても簡単に実現できますが、シリアル化を使用しない方法は非効率的でエラーの原因となることが多く、オブジェクトの階層を追跡する必要がある場合にはさらに複雑になります。何千ものオブジェクトを含む大規模なビジネス アプリケーションを作成し、それぞれのオブジェクトのフィールドやプロパティをディスクに保存したり、ディスクから復元したりするコードを作成することを想像してみてください。シリアル化は、この目的を実現するための便利な機構を提供します。

共通言語ランタイムでは、オブジェクトがメモリに格納される方法を管理し、自動化されたシリアル化機構を、リフレクションを使用することで提供します。オブジェクトがシリアル化されるときは、クラスの名前、アセンブリ、およびそのクラス インスタンスのすべてのデータ メンバがストレージに書き込まれます。オブジェクトのメンバ変数には、他のインスタンスへの参照が格納されていることがよくあります。クラスのシリアル化の実行時、シリアル化エンジンは、既にシリアル化されている参照先オブジェクトを追跡し、同じオブジェクトが複数回シリアル化されないようにします。 が提供するシリアル化アーキテクチャは、オブジェクト グラフを正しく処理し、自動的に循環参照を行います。オブジェクト グラフに対する唯一の要件は、シリアル化されたオブジェクトによって参照されるすべてのオブジェクトを、Serializable としてもマークする必要があることです。詳細については、「基本的なシリアル化」を参照してください。Serializable としてマークしないと、マークされていないオブジェクトをシリアライザがシリアル化しようとしたときに例外がスローされます。

シリアル化されたクラスを逆シリアル化すると、そのクラスが再作成され、すべてのデータ メンバの値は自動的に復元されます。

参照

その他の技術情報

シリアル化の概念
リモート オブジェクト
XML シリアル化および SOAP シリアル化