如何在 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。