.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.