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);

登录后复制

以上就是C#实现实体类和XML相互转换的示例代码详解的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2495602.html

(0)
上一篇 2025年3月5日 02:20:37
下一篇 2025年3月5日 02:20:50

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论