如果我们序列化一个静态类会怎样?如果我们对其进行序列化,是否可以创建一个以上的静态类实例?
[Serializable] public static class MyClass { public static MyClass() { } public static bool IsTrue() { return true; } }
假设我将对象XmlSerialize转换为XML文件,稍后再反序列化回对象。内存中存在另一个副本(当somone首次初始化静态校准时创建)。会不会有该对象的两个副本?如果是,我们可以停止吗?它适用于遵循单例模式的任何类吗?
静态类从来没有 任何 实例:它们在IL中都是抽象的并且是密封的,因此CLR将阻止创建任何实例。因此,没有什么可序列化的。静态字段从不序列化,这是静态类可以具有的唯一状态。
关于XML序列化的问题毫无意义,因为没有人可以创建静态类的实例。