F# で None をシリアル化するにはどうすればよいですか? System.ArgumentNullException: Object Graph cannot be null.次のコードはエラーをスローします。
let f = System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
let m = System.IO.MemoryStream()
f.Serialize (m, None)
F# で None をシリアル化するにはどうすればよいですか? System.ArgumentNullException: Object Graph cannot be null.次のコードはエラーをスローします。
let f = System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
let m = System.IO.MemoryStream()
f.Serialize (m, None)
いくつかのパフォーマンス上の理由から、コンパイラはしばしばNone = null. 最善の解決策は、オプションの追加レイヤーで全体をラップすることだと思います
このような
let f = System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
let m = System.IO.MemoryStream()
f.Serialize (m,Some( None))
Some次に、逆シリアル化するときにその余分なものを削除するだけです
serializerのように、別の を使用してみてくださいNetDataContractSerializer。私が知っBinaryFormatterていることから、レガシーと見なされており、他にもいくつかの問題があります。たとえば、 this .