千家信息网

C#怎么实现实体类和XML的相互转换

发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要为大家展示了"C#怎么实现实体类和XML的相互转换",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"C#怎么实现实体类和XML的相互转换"这篇文章
千家信息网最后更新 2025年11月06日C#怎么实现实体类和XML的相互转换

这篇文章主要为大家展示了"C#怎么实现实体类和XML的相互转换",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"C#怎么实现实体类和XML的相互转换"这篇文章吧。

一、实体类转换成XML

将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化

public static string XmlSerialize(T obj){       using (StringWriter sw = new StringWriter())       {             Type t= obj.GetType();                          XmlSerializer serializer = new XmlSerializer(obj.GetType());             serializer.Serialize(sw, obj);             sw.Close();             return sw.ToString();        }}

示例:

1、定义实体类

[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]    public class Request    {        public string System { get; set; }        public string SecurityCode { get; set; }        public PatientBasicInfo PatientInfo { get; set; }    }    ///     [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]    public partial class PatientBasicInfo    {        public string PatientNo { get; set; }        public string PatientName { get; set; }        public string Phoneticize { get; set; }        public string Sex { get; set; }        public string Birth { get; set; }        public string BirthPlace { get; set; }        public string Country { get; set; }        public string Nation { get; set; }        public string IDNumber { get; set; }        public string SecurityNo { get; set; }        public string Workunits { get; set; }        public string Address { get; set; }        public string ZIPCode { get; set; }        public string Phone { get; set; }        public string ContactPerson { get; set; }        public string ContactShip { get; set; }        public string ContactPersonAdd { get; set; }        public string ContactPersonPhone { get; set; }        public string OperationCode { get; set; }        public string OperationName { get; set; }        public string OperationTime { get; set; }        public string CardNo { get; set; }        public string ChangeType { get; set; }    }

2、给实体类赋值,并通过序列化将实体类转换成XML格式的字符串

Request patientIn = new Request();            patientIn.System = "HIS";            patientIn.SecurityCode = "HIS5";            PatientBasicInfo basicInfo = new PatientBasicInfo();            basicInfo.PatientNo = "1234";            basicInfo.PatientName = "测试";            basicInfo.Phoneticize = "";            basicInfo.Sex = "1";            basicInfo.Birth = "";            basicInfo.BirthPlace = "";            basicInfo.Country = "";            basicInfo.Nation = "";            basicInfo.IDNumber = "";            basicInfo.SecurityNo = "";            basicInfo.Workunits = "";            basicInfo.Address = "";            basicInfo.ZIPCode = "";            basicInfo.Phone = "";            basicInfo.ContactShip = "";            basicInfo.ContactPersonPhone = "";            basicInfo.ContactPersonAdd = "";            basicInfo.ContactPerson = "";            basicInfo.ChangeType = "";            basicInfo.CardNo = "";            basicInfo.OperationCode = "";            basicInfo.OperationName = "";            basicInfo.OperationTime = "";            patientIn.PatientInfo = basicInfo;            //序列化            string strxml = XmlSerializeHelper.XmlSerialize(patientIn);

3、生成的XML实例

  HIS  HIS5      1234    测试        1                                

二、将XML转换成实体类

把XML转换成相应的实体类,需要使用到XmlSerializer类的Deserialize方法,将XML进行反序列化。

public static T DESerializer(string strXML) where T:class{     try    {            using (StringReader sr = new StringReader(strXML))           {                XmlSerializer serializer = new XmlSerializer(typeof(T));                return serializer.Deserialize(sr) as T;           }     }     catch (Exception ex)     {            return null;     }}

示例:

将上例中序列化后的XML反序列化成实体类

//反序列化Request r = XmlSerializeHelper.DESerializer(strxml);

三、将DataTable转换成XML

//将DataTable转换成XMLDataTable dt = new DataTable("MyTable");//添加列dt.Columns.Add("Id", typeof(int));dt.Columns.Add("Name", typeof(string));dt.Columns.Add("Sex", typeof(char));//添加行dt.Rows.Add(1, "小明", '1');dt.Rows.Add(2, "小红", '2');dt.Rows.Add(3, "小王", '2');dt.Rows.Add(4, "测试", '2');//序列化,将DataTable转换成XML格式的字符串string strXML = XmlSerializeHelper.XmlSerialize  (dt);

四、将XML转换成DataTable

//反序列化,将XML转换成字符串DataTable dtNew=  XmlSerializeHelper.DESerializer(strXML);

五、将List集合转换成XML

/// /// 测试类/// public class Student{    public int Id { get; set; }    public string Name { get; set; }    public char Sex { get; set; }    public int Age { get; set; }}//测试集合List list = new List(){        new Student(){Id=1,Name="小红",Sex='2',Age=20},        new Student(){Id=2,Name="小明",Sex='1',Age=22},        new Student(){Id=3,Name="小王",Sex='1',Age=19},        new Student(){Id=4,Name="测试",Sex='2',Age=23}};//序列化string strXML = XmlSerializeHelper.XmlSerialize>(list);

六、将XML转换成集合

使用上面例子中集合转换成的XML进行反序列化。

//反序列化List listStu = XmlSerializeHelper.DESerializer>(strXML);

以上是"C#怎么实现实体类和XML的相互转换"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

实体 序列 测试 C# 内容 字符 字符串 篇文章 方法 格式 示例 小明 小王 小红 学习 帮助 例子 实例 易懂 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 vue使用数据库 高中网络技术教材教案 更改游戏服务器列表连接区IP 网络安全对现代生活的影响论文 计算机网络技术专业工作周报 软件开发征税范围 广州大的软件开发公司 静安区推广软件开发质量保障 修改服务器管理接口地址 十大教育教学软件开发公司 厦门对点网络技术有限公司 城阳区管理软件开发服务公司 数据库的备份不包括( ) 主流数据库系统 vs2010导入表格数据库 如何判断哪家服务器托管比较好 谭志强 数据库 软件开发增值税发票多少个点 大学数据库开发项目 c语言连接数据库什么意思 桓台瓷砖软件开发服务 2021网络安全龙头股票 平台的软件开发 软件开发在西安的市场需求 国家电网国产数据库 mysql查看数据库类型 涪陵区网络安全审计系统咨询公司 用友系统管理怎么打开数据库 虹口区品质软件开发服务不二之选 疫情期间高校网络安全排查
0