4

在尝试序列化我的类和子类时与一堆未捕获的异常搏斗之后,我终于明白了我的问题是什么: [Serializable] 在应用于基类时不会被子类继承。总的来说,我对 C# 属性仍然很模糊,但我确实明白,在创建自定义属性时,程序员能够启用属性的自动继承。

有什么方法可以覆盖 [Serializable] 的继承吗?有什么好的理由为什么没有从一开始就完成和/或首先这样做是个坏主意吗?我希望所述基类的所有子类都是可序列化的,因此必须将属性添加到我创建的任何新子类中似乎并不优雅。

谢谢!

4

1 回答 1

5

绝对有一个很好的理由,它一开始就没有完成——仅仅因为基类是可序列化的,并不意味着派生类自然是可序列化的。

哎呀,object是可序列化的 - 如果继承了可序列化性,那意味着 .NET 中的每个类都是可序列化的 :)

你也不能“覆盖”它——你必须在每个类上指定它。实际上,我认为这是一件好事 - 当您添加属性时,您应该对类进行心理检查并检查序列化它是否真的有意义

于 2010-08-10T19:44:00.447 回答