一、实体类转换成XML
将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化
1
2
3
4
5
6
7
8
9
10
11
|
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、定义实体类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
[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格式的字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
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实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<? 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进行反序列化。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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反序列化成实体类
1
2
|
//反序列化
Request r = XmlSerializeHelper.DESerializer<Request>(strxml);
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。