全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

一、实体类转换成XML

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

public static string XmlSerialize<T>(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; }  
 }

 /// <remarks/>
 [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<Request>(patientIn);

3、生成的XML实例

<?xml version="1.0" encoding="utf-16"?>
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <System>HIS</System>
 <SecurityCode>HIS5</SecurityCode>
 <PatientInfo>
 <PatientNo>1234</PatientNo>
 <PatientName>测试</PatientName>
 <Phoneticize />
 <Sex>1</Sex>
 <Birth />
 <BirthPlace />
 <Country />
 <Nation />
 <IDNumber />
 <SecurityNo />
 <Workunits />
 <Address />
 <ZIPCode />
 <Phone />
 <ContactPerson />
 <ContactShip />
 <ContactPersonAdd />
 <ContactPersonPhone />
 <OperationCode />
 <OperationName />
 <OperationTime />
 <CardNo />
 <ChangeType />
 </PatientInfo>
</Request>

二、将XML转换成实体类

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

public static T DESerializer<T>(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<Request>(strxml);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# C#  # XML转换成实体类  # C#实体类转换成XML  # C#实现XML与实体类之间相互转换的方法(序列化与反序列化)  # C#实现实体类和XML的相互转换  # 转换成  # 实体类  # 序列化  # 大家多多  # AnonymousType  # true  # XmlRootAttribute  # false  # IsNullable  # Namespace  # System  # color  # XmlTypeAttribute  # Serialization  # Xml  # PatientName  # PatientNo  # partial  # Birth  # Sex 


相关文章: Python多线程使用规范_线程安全解析【教程】  大学网站设计制作软件有哪些,如何将网站制作成自己app?  建站之星后台管理如何实现高效配置?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  行程制作网站有哪些,第三方机票电子行程单怎么开?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  如何在景安服务器上快速搭建个人网站?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  Android自定义listview布局实现上拉加载下拉刷新功能  高端云建站费用究竟需要多少预算?  网站代码制作软件有哪些,如何生成自己网站的代码?  中山网站推广排名,中山信息港登录入口?  C#如何在一个XML文件中查找并替换文本内容  大连 网站制作,大连天途有线官网?  如何解决ASP生成WAP建站中文乱码问题?  ,石家庄四十八中学官网?  网站制作需要会哪些技术,建立一个网站要花费多少?  建站之星后台管理:高效配置与模板优化提升用户体验  如何快速搭建自助建站会员专属系统?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  公众号网站制作网页,微信公众号怎么制作?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  制作网站的基本流程,设计网站的软件是什么?  如何做静态网页,sublimetext3.0制作静态网页?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  如何在云虚拟主机上快速搭建个人网站?  焦点电影公司作品,电影焦点结局是什么?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何用已有域名快速搭建网站?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何在Windows虚拟主机上快速搭建网站?  外贸公司网站制作哪家好,maersk船公司官网?  如何获取免费开源的自助建站系统源码?  Python如何创建带属性的XML节点  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何在阿里云ECS服务器部署织梦CMS网站?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  建站之星安装失败:服务器环境不兼容?  如何获取上海专业网站定制建站电话?  详解jQuery停止动画——stop()方法的使用  如何通过建站之星自助学习解决操作问题?  建站之星如何实现PC+手机+微信网站五合一建站?  建站之星后台密码遗忘?如何快速找回?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  如何用AWS免费套餐快速搭建高效网站?  建站OpenVZ教程与优化策略:配置指南与性能提升  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  c# 在高并发场景下,委托和接口调用的性能对比  网站制作壁纸教程视频,电脑壁纸网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。