System.IO BinaryReader をオーバーロードして、ファイル ストレージの目的でいくつかのクラスをシリアル化しています。辞書などの項目を実行しても問題はありませんでしたが、null 許容型では成功していません。することは可能ですか?具体的には、小数を試みていますか? と string? ですが、ソリューションを適応させるには、どのタイプでも機能するはずです。
特定のビジネス上の理由から、バイナリ シリアル化を行う必要があるため、そのために機能するソリューションのみに回答を限定してください。
たとえば...バイト配列の読み取り/書き込みには、次のメソッドを使用します。
public byte[] ReadByteArray()
{
int len = ReadInt32();
if (len > 0) return ReadBytes(len);
if (len < 0) return null;
return new byte[0];
}
public override void Write(byte[] b)
{
int len = b.Length;
Write(len);
if (len > 0) base.Write(b);
}