日期:2014-05-17  浏览次数:20971 次

关于Serializable特性的继承问题。。。
往大了说可能能扯到里氏替换原则啥的,但我的需求很小:我的类声明了Serializable特性,当子类不实现Serializable时序列化某个引用它的对象会出错。那我能做什么事来要求子类必须声明Serializable,否则给出编译错误吗?

------解决方案--------------------
你要序列化它,就必须标记Serializable
------解决方案--------------------
引用:
往大了说可能能扯到里氏替换原则啥的,但我的需求很小:我的类声明了Serializable特性,当子类不实现Serializable时序列化某个引用它的对象会出错。那我能做什么事来要求子类必须声明Serializable,否则给出编译错误吗?

如果你使用DataContractSerializer来序列化就不会出错,它默认对所有public属性进行序列化,如果标记了Serializable则是对所有字段而无视属性序列化,用了DataContractAttribute可以指定部分序列化。