开发者

Overriding inheritance on intrinsic attributes in C#

After wrestling with a bunch of uncaught exceptions when trying to serialize my classes and subclasses, I've finally understood what my problem had been: [Serializable] isn't inherited by subclasses when applied to a base class. I'm still really fuzzy about C# Attributes in general, but I do understand that when creating a custom Attribute, the programmer is able to enable automatic inheritance of the Attribute.

It there any way to override the inheritance of [Serializable]? Is there any good reason why it wasn't done from the start and/or would be a bad idea to do this in the first place? I would want all subclasses of said base class be serializable, so it just seems inelegant to have to add the attribute to any new subcl开发者_运维技巧asses I make.

Thanks!


There's absolutely a good reason it wasn't done in the first place - just because a base class is serializable doesn't mean that a derived class naturally is.

Heck, object is serializable - if serializability were inherited, that would mean every class in .NET would be serializable :)

You can't "override" that either - you have to specify it on every class. I think that's a good thing, actually - when you add the attribute, you should perform a mental check on the class and check that it really does make sense to serialize it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜