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 .