SoapFormatterではSOAP形式でシリアル化できます。
.NET Framework 2.0以降ではこのクラスの使用が推奨されないため、BinaryFormatterかXmlSerializerを使用するようにします。Remarks - SoapFormatter Class (System.Runtime.Serialization.Formatters.Soap) | Microsoft Learn
逆シリアル化するときに意図せぬコードを実行される恐れがあるため、このクラスの使用は推奨されません。代替としてXmlSerializerやBinaryReaderなどを用います。BinaryFormatter および関連する型を使用するときの逆シリアル化のリスク | Microsoft Learn
using (FileStream fileStream = new FileStream(path, FileMode.Create))
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fileStream, obj);
}
シリアル化の対象のオブジェクトにSerializableAttributeが指定されていないと、「'***' はシリアル化可能として設定されていません。」としてSerializationExceptionが投げられます。
using (FileStream fileStream = new FileStream(path, FileMode.Open))
{
BinaryFormatter formatter = new BinaryFormatter();
return formatter.Deserialize(fileStream);
}
| 方法 | 継承 | |
|---|---|---|
| インターフェイスのメソッドを実装 | 可能 | ISerializable インターフェイス ISerializable インターフェイス (System.Runtime.Serialization) | MSDN |
| 属性を指定 | 不能 | SerializableAttribute クラス |