zoukankan      html  css  js  c++  java
  • XmlSerialization示例

    1.准备要序列化的对象

    [Serializable()]
    public class SerializableType
    {
        public string StringValue { get; set; }
        public bool BoolValue { get; set; }
        public int IntValue { get; set; }
        public AnotherType AnotherTypeValue { get; set; }
        public List<string> ListValue { get; set; }
    
        [NonSerialized()]
        private int ignoredField = 1;
    
        public SerializableType()
        {
            ListValue = new List<string>();
            AnotherTypeValue = new AnotherType();
        }
    };
    
    [Serializable()]
    public class AnotherType
    {
        public string StringValue { get; set; }
        public int IntValue { get; set; }
    };
    
    

    2.序列化

        static void Serialize(SerializableType instance)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(SerializableType));
    
            using (StreamWriter streamWriter = File.CreateText("CSXmlSerialization.xml")) {
                serializer.Serialize(streamWriter, instance);
            }
        }
    
    

    3. 解序列化

        static SerializableType Deserialize()
        {
            var deserializedInstance = new SerializableType();
            var serializer = new XmlSerializer(typeof(SerializableType));
    
            using (StreamReader streamReader = File.OpenText("CSXmlSerialization.xml")) {
                deserializedInstance = serializer.Deserialize(streamReader) as SerializableType;
            }
            return deserializedInstance;
        }
    
    

    4. 测试代码

        static void Main(string[] args)
        {
            SerializableType st = new SerializableType();
            st.BoolValue = true;
            st.IntValue = 1;
            st.StringValue = "Test String";
            st.ListValue.Add("List Item 1");
            st.ListValue.Add("List Item 2");
            st.ListValue.Add("List Item 3");
            st.AnotherTypeValue.IntValue = 2;
            st.AnotherTypeValue.StringValue = "Inner Test String";
    
            Serialize(st);
    
            var dt = Deserialize();
    
            Console.WriteLine("BoolValue: {0}", dt.BoolValue);
            Console.WriteLine("IntValue: {0}", dt.IntValue);
            Console.WriteLine("StringValue: {0}", dt.StringValue);
            Console.WriteLine("AnotherTypeValue.IntValue: {0}", dt.AnotherTypeValue.IntValue);
            Console.WriteLine("AnotherTypeValue.StringValue: {0}", dt.AnotherTypeValue.StringValue);
            Console.WriteLine("ListValue: ");
    
            foreach (object obj in dt.ListValue) {
                Console.WriteLine(obj.ToString());
            }
        }
    
    
  • 相关阅读:
    个人浏览器安装的插件
    angularjs 1 Failed to read the 'selectionStart' property from 'HTMLInputElement':
    git 配置用户名和邮箱
    修改Atom 隐藏.gitignore忽略的文件/文件夹的配置
    Ubuntu 安装php_intl 扩展
    yii2 ./yii command : No such file or directory
    vagrant yii2 Exception 'yiidbException' with message 'SQLSTATE[HY000] [2002]
    [转载]Ubuntu 14.04设置固定ip
    [转载]删除所有的.svn文件夹
    Centos7.2正常启动关闭CDH5.16.1
  • 原文地址:https://www.cnblogs.com/cuishengli/p/1901573.html
Copyright © 2011-2022 走看看