C# 实体类序列化与反序列化二 (DataContractSerializer)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.Serialization;using System.IO;using System.Xml;namespace Common.Utility.XMLSerialization{    ///     /// DataContractSerializer    ///     ///     public class DataContractSerializer    {        ///         /// 实体序列化成xml string        ///         ///         ///         public static string ToXMLString(T meta)        {            DataContractSerializer dcs = new DataContractSerializer(typeof(T));            string xmlStr = string.Empty;            using (MemoryStream ms = new MemoryStream())            {                try                {                    dcs.WriteObject(ms, meta);                    xmlStr = Encoding.UTF8.GetString(ms.ToArray());                    ms.Close();                }                catch                {                    throw;                }            }            return xmlStr;        }        ///         /// DataContract序列化        ///         ///         /// 已知类型的集合        ///         public static string ToXMLString(object value, IEnumerable knownTypes = null)        {            try            {                DataContractSerializer dataContractSerializer = new DataContractSerializer(value.GetType(), knownTypes);                using (MemoryStream ms = new MemoryStream())                {                    dataContractSerializer.WriteObject(ms, value);                    ms.Seek(0, SeekOrigin.Begin);                    using (StreamReader sr = new StreamReader(ms))                    {                        return sr.ReadToEnd();                    }                }            }            catch            {                throw;            }        }        ///         /// 实体反序列化        ///         ///         ///         public static T ReadFromXML(string xmlStr)        {            T meta;            try            {                DataContractSerializer dcs = new DataContractSerializer(typeof(T));                using (TextReader reader = new StringReader(xmlStr))                {                    using (XmlReader xReader = XmlReader.Create(reader))                    {                        meta = (T)dcs.ReadObject(xReader);                    }                }            }            catch            {                throw;            }            return meta;        }        ///         /// 实体反序列化        ///         ///         /// IEnumerable        ///         public static T ReadFromXML(string xmlStr, IEnumerable knownTypes = null)        {            T meta;            try            {                DataContractSerializer dcs = new DataContractSerializer(typeof(T), knownTypes);                using (TextReader reader = new StringReader(xmlStr))                {                    using (XmlReader xReader = XmlReader.Create(reader))                    {                        meta = (T)dcs.ReadObject(xReader);                    }                }            }            catch            {                throw;            }            return meta;        }    }}

以上就是c# 实体类序列化反序列化二 (datacontractserializer) 的内容,更多相关内容请关注创想鸟(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 06:25:29
下一篇 2025年12月17日 06:25:39

相关推荐

发表回复

登录后才能评论
关注微信