0

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)
4

2 に答える 2

2

いくつかのパフォーマンス上の理由から、コンパイラはしばしばNone = null. 最善の解決策は、オプションの追加レイヤーで全体をラップすることだと思います

このような

let f = System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
let m = System.IO.MemoryStream()
f.Serialize (m,Some( None))

Some次に、逆シリアル化するときにその余分なものを削除するだけです

于 2012-09-17T12:14:58.873 に答える
1

serializerのように、別の を使用してみてくださいNetDataContractSerializer。私が知っBinaryFormatterていることから、レガシーと見なされており、他にもいくつかの問題があります。たとえば、 this .

于 2012-09-18T11:20:29.077 に答える