c#:使第三方对象可序列化

Pat*_*ick 3 c# serialization

在我自己的对象上,我可以添加metatag [Serializable]以使其可序列化.现在我使用了第三方库,我需要将其序列化.我检查了代码,这应该不是问题.有没有办法解决这个问题而不改变第三方代码?

Mar*_*ell 6

我的建议是:序列化数据,而不是实现.存在第三方对象的事实与数据无关; 这是一个实现细节.因此,我总是提供相同的建议:如果在序列以往任何时候都变得复杂,要做的第一件事就是推出一个代表一个单独的DTO模式的数据在实施隔离,而不仅仅是当前状态映射到DTO.这允许您在不影响存储的情况下处理实现更改,并允许序列化非序列化对象.

一些序列化程序提供了解决方法 - 例如使用protobuf-net,您可以:在运行时提供任何类型的序列化信息,b:提供"代理"以在棘手时自动使用,但是 - 使用DTO模型更简单,更容易维护.

你使用[Serializable]暗示BinaryFormatter; 在我看来,这几乎不是任何类型存储的好选择,因为它BinaryFormatter依赖于实现细节.但是,它可以很好地在两个同步应用程序域之间传递数据