xml和对象 转换

49 篇文章 0 订阅
45 篇文章 2 订阅
//测试数据
static List<User> list = new List<User>()
        {
            new User(){id=1001	 ,name="语文",buyer="A"},
            new User(){id=1001	 ,name="语文",buyer="A"},
            new User(){id=1001	 ,name="数学",buyer="A"},
            new User(){id=1001	 ,name="数学",buyer="B"},
            new User(){id=1001	 ,name="数学",buyer="B"},
            new User(){id=1002	 ,name="英语",buyer="C"},
            new User(){id=1005	 ,name="英语",buyer="A"},
            new User(){id=1005	 ,name="英语",buyer="A"},
            new User(){id=1005	 ,name="英语",buyer="B"},
            new User(){id=1004	 ,name="计算机",buyer="A"},
            new User(){id=1007	 ,name="计算机",buyer="C"},
        };
//实体模型
        public class User
        {
            public int id { get; set; }
            public virtual string name { get; set; }
            public virtual string buyer { get; set; }
            public virtual string idArr { get; set; }
            public virtual DateTime expiredTime { get; set; }
        }

        static void Main(string[] args)
        {
            //测试数据  xml
            string xml = XMLSerialize<List<User>>(list);

            //xml 转 对象
            List<User> ulist = XmlDeserialize<List<User>>(xml);
            //输出查看结果
            ulist.ForEach(x => Console.WriteLine(x.name));

            Console.ReadLine();
        }

        //序列化xml
        public static string XMLSerialize<T>(T entity)
        {
            StringBuilder buffer = new StringBuilder();

            XmlSerializer serializer = new XmlSerializer(typeof(T));
            using (TextWriter writer = new StringWriter(buffer))
            {
                serializer.Serialize(writer, entity);
            }

            return buffer.ToString();

        }

        //反序列化xml
        public static T XmlDeserialize<T>(string xmlString)
        {
            T myObject;
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            StringReader reader = new StringReader(xmlString);
            myObject = (T)serializer.Deserialize(reader);
            reader.Close();
            return myObject;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值