.NET でのシリアル化Serialization in .NET

シリアル化とは、オブジェクトの状態を永続化または転送できる形式に変換するプロセスのことです。Serialization is the process of converting the state of an object into a form that can be persisted or transported. シリアル化を補完するプロセスとして、ストリームをオブジェクトに変換する逆シリアル化があります。The complement of serialization is deserialization, which converts a stream into an object. これらのプロセスを共に使用することで、データを格納および転送できます。Together, these processes allow data to be stored and transferred.

.NET では、次のシリアル化テクノロジが提供されています。.NET features the following serialization technologies:

  • バイナリ シリアル化では、型そのものが正確に維持されるため、アプリケーションを次回起動するまでの間、オブジェクトの状態を維持するのに役立ちます。Binary serialization preserves type fidelity, which is useful for preserving the state of an object between different invocations of an application. たとえば、クリップボードを出力先としてオブジェクトをシリアル化することによって、そのオブジェクトを異なるアプリケーション間で共有できます。For example, you can share an object between different applications by serializing it to the Clipboard. オブジェクトをシリアル化して、ストリーム、ディスク、メモリ、ネットワーク上などに出力できます。You can serialize an object to a stream, to a disk, to memory, over the network, and so forth. リモート処理では、シリアル化を使用して、コンピューター間やアプリケーション ドメイン間でオブジェクトを "値渡し" します。Remoting uses serialization to pass objects "by value" from one computer or application domain to another.

  • XML および SOAP シリアル化では、パブリック プロパティとフィールドのみがシリアル化され、型そのものは維持されません。XML and SOAP serialization serializes only public properties and fields and does not preserve type fidelity. これは、データを使用するアプリケーションに制限を加えずに、データを提供または処理する場合に有効です。This is useful when you want to provide or consume data without restricting the application that uses the data. XML はオープン標準であるため、Web 経由でデータを共有する場合には有用な選択肢となります。Because XML is an open standard, it is an attractive choice for sharing data across the Web. SOAP も同様のオープン標準であるため、有用な選択肢です。SOAP is likewise an open standard, which makes it an attractive choice.

  • JSON シリアル化では、パブリック プロパティのみがシリアル化され、型そのものは維持されません。JSON serialization serializes only public properties and does not preserve type fidelity. JSON はオープン標準です。Web 経由でデータを共有する場合には有用な選択肢となります。JSON is an open standard that is an attractive choice for sharing data across the web.

関連項目Reference

System.Runtime.Serialization
オブジェクトのシリアル化と逆シリアル化に使用できるクラスが含まれています。Contains classes that can be used for serializing and deserializing objects.

System.Xml.Serialization
オブジェクトを XML 形式のドキュメントまたはストリームにシリアル化するために使用できるクラスが含まれています。Contains classes that can be used to serialize objects into XML format documents or streams.

System.Text.Json
オブジェクトを JSON 形式のドキュメントまたはストリームにシリアル化するために使用できるクラスが含まれています。Contains classes that can be used to serialize objects into JSON format documents or streams.