c# - 可序列化继承

标签 c# .net vb.net

如果某些东西继承自可序列化类,那么子类是否仍然可序列化?

最佳答案

这取决于你的意思是可序列化。如果您指的是 CLI 标记(即 [Serializable] 属性),那么这是继承的(下面的证明)。您必须将每个派生类显式标记为 [Serializable]。但是,如果您指的是 ISerializable 接口(interface),那么是的:接口(interface)实现是继承的,但您需要小心 - 例如通过使用 virtual 方法,以便派生类可以为序列化贡献他们的数据。

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine(typeof(Foo).IsSerializable); // shows True
        Console.WriteLine(typeof(Bar).IsSerializable); // shows False
    }
}

[Serializable]
class Foo {}

class Bar : Foo {}

关于c# - 可序列化继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/182873/

相关文章:

c# - 清空 ILookup<K, T>

c# - 如何将 JSON 存储到 RavenDB?

c# - XML 包装的集合不反序列化

.net - 这段代码可以防止SQL注入(inject)吗?

mysql - 2个表同时插入数据的方法

c# - ASP.NET Link 带按钮的回车键?

c# - Winform WebBrowser 不显示 CSS

c# - 如何在 C# 中管道 powershell 命令

.net - 是否可以使用 WCF 完成大流量聊天?

asp.net - 在 ASP.Net 标记中显示字符串变量的值