Serialize a Static Class?

后端 未结 6 1165
耶瑟儿~
耶瑟儿~ 2020-11-27 06:25

What happens if we serialize a static class? Can more than one instance of the static class be created if we serialize it?

[Serializable]
public static class         


        
6条回答
  •  时光取名叫无心
    2020-11-27 06:59

    Why not just use a temporary instance class that is a mirror of the static class?

    [XmlRoot]
    public class SerializeClass
    {
        public int Number {
            get;
            set;
        }
    }
    
    public static class SerializedClass {
    
        public static int Number {
            get;
            set;
        }
    
    
        public static void Serialize(Stream stream) {
    
            SerializeClass obj = new SerializeClass();
            obj.Number = Number;
    
            XmlSerializer serializer = new XmlSerializer(typeof(SerializeClass));
            serializer.Serialize(stream, obj);
        }
    
        public static void Deserialize(Stream stream) {
    
            XmlSerializer serializer = new XmlSerializer(typeof(SerializeClass));
            SerializeClass obj = (SerializeClass)serializer.Deserialize(stream);
    
            Number = obj.Number;
        }
    }
    

    I know it's a bit of a hack, but it acheives the same purpose, while still allowing Refactor before runtime, and value validation during runtime.

提交回复
热议问题