覆盖C#中内部属性的继承

时间:2010-08-10 19:40:58

标签: c# oop attributes class-attributes

在尝试序列化我的类和子类时,在尝试了一堆未捕获的异常之后,我终于明白了我的问题:[Serializable]在应用于基类时不会被子类继承。我对C#属性一般都很模糊,但我确实理解在创建自定义属性时,程序员能够自动继承属性。

有没有办法覆盖[Serializable]的继承?有没有什么好的理由说明为什么从一开始就没有这样做和/或首先做一个坏主意?我希望所有基类的所有子类都是可序列化的,所以只需要将属性添加到我创建的任何新子类中就显得不够优雅。

谢谢!

1 个答案:

答案 0 :(得分:5)

首先没有完成它的绝对正当理由 - 仅仅因为基类是可序列化的并不意味着派生类本身就是这样。

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

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