c# - 为什么接口(interface)不是 [Serializable]?

标签 c# .net serialization interface

我认为将该属性添加到接口(interface)将有助于确保您不会创建使用该接口(interface)的类而忘记使它们可序列化。

这可能是一个非常基础的问题,但我想请教专家。

最佳答案

接口(interface)定义一个契约并且没有自己的任何状态。

序列化是关于在对象模型中保存和加载状态

序列化没有状态的东西没有多大意义。


为了回答强制接口(interface)的实现成为Serializable 的实际问题 - 这就是为什么 ISerializable接口(interface)存在。

在 .NET 中,您可以声明一个应该实现其他接口(interface)的接口(interface):

interface MustBeSerializable : ISerializable {}

查看更多信息 here .

关于c# - 为什么接口(interface)不是 [Serializable]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2639362/

相关文章:

.net - 静态/共享功能中的LoadControl

Java序列化方法

c# - 用于处理事件订阅的实用程序类 (AddSubscription()/UnsubscribeAll())

c# - string.Format() 参数

c# - Asp.net MVC - 在 cshtml 页面中创建环境特定的元标记

c# - 我可以设置 VS10 在构建意外中断时通知我吗?

c# - 从提升进程开始非提升进程

c# - 在 C# 中具有两个属性的 Xml

c# - 序列化不接受我的 KnownTypeAttribute,为什么?

c++ - 使用 Boost :serialize 反序列化指向派生类的指针时出现问题