using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Runtime.Serialization;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Xml;
using System.Xml.Linq;
using System.Xml.Serialization;
using Entities.Treatment;
using Utilities;
public class HelloWorld
{
public static void Main()
{
String stringByStore = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><GetEMRsResponse xmlns=\"http://tempuri.org/\"><GetEMRsResult>pVXfaxNLFN7UZk1a62/TtGk1D+JTiZutVgtThaTVVpMamljQUuKaDO3QzWzcH2p88r5caPFeFLxX7b2iID6I0ipa9KH4D/giiCDqY9NU8KUg+KgzuymmmUkFnd2dnT3fnDPffDN7RnAJgvCNFPqmZUMdqQ73YROZCBodwWGoG0jDPeGQRK+OYNRSTUuHPRhapq6oHcGEdVZFmeOwkNImIO7BlqrW02h/uJIFw4S5UFRTVZgxSRQjdBRiqKNMKIYM80x4ZGRloFBKh4qZg9gM9cWHYEbTsx3B32QxOrqO0BDTiJAw3GkDXYKe9HknUr0gtK8x9sgolcHj8dIIdeVnPf0Q6NTq6RNYw59299JeXjepmurctL2WQyfBW8AAPmchvSAfmkinI0pmAuGxIwiq2RaQLOTyppZjkHbQn4rHavk1g9PjVtJi7AFw6lhUwyZhwMH6a2LbwEC22uYDJ/QxnjkBTdbcDqKWQSYC9UElB9mxV1DW008D8px8YAhyCLSBuIJwWTc2WFky1qtCT9arRrgAcFYxVcgz9FpBYrxgoAxSMOvWC/OKbu+EamwXiCmGeTKfVUzYSx6OVHQTcTE/iCh6VMsyQAsg+20AZ+HFaiRYqRbPdVUH3jx3V3fgrdXOH2Lw4HbQq2VMTR+COUWfqEZ3gBS8yAjlA0nlPOQsfxLSrDOQU8Y44g0jeMFZM86/Nq5diGs649VGVpkkHTyMDMShYf9qbLRBwpm3SG02Uv7T+CB168MMw1YQhaqaGNcwR8Co4mxDnrzNgC9swPYatHJnoc4yGVZ0BM0CL2DrjzzCQv21oEB5lVOIjegH0b44b3v5aZrhT+o4wtkTR9hRHDtvz7jsYidzcjlNJ7NXfDiIbSCXp1yamkjlWmnRPN9glwd73+/p8QlCZOazSxRp5i/O3y3ef1q89/Drq7eCuJ6Y3HnFgIXneFkQPYLjSV8fvtQJleXq9o1PHn985xG99JiRuqR9lWiDSJ28pcn/ijcnl15OOjFWlQamITaSqjHcKR2Qw13SgbAsbqBn/eKtmU+Xpxfmp4vXbnopJXEjPfZkiQzaFT4obqKmxTvPSlOPylzFzaTyL7yYWpx7Xpy5Xbz1f3HmbmnywdLsVOnfG53kmGtwucsnpCPMX4OOMFfIW9xCqS/NzTnCJK5/8YhbadTSy7/JPX9pWbBp1BDm9bT3nzdUmO2UfCQWiclhqVPukuXVAu34BYF8tkDd3UQfef8+OSw28wVqsQUiw0rdUrfYags0e73059SKQIGfCtT4HQ==</GetEMRsResult></GetEMRsResponse></s:Body></s:Envelope>";
Console.WriteLine(stringByStore);
System.Collections.Generic.List<EMRecord> ds = XMLUtilities.XmlStringToObject<System.Collections.Generic.List<EMRecord>>(stringByStore);
Console.WriteLine(ds[0]);
}
}
namespace Entities.Treatment
{
[DataContract]
[Serializable]
public class EMRecord
{
[DataMember]
public string Inquiry2
{
get;
set;
}
[DataMember]
public string Symptom2
{
get;
set;
}
[DataMember]
public string HTMLInquiry2
{
get;
set;
}
[DataMember]
public string ZhuSu2
{
get;
set;
}
[DataMember]
public string YJContent2
{
get;
set;
}
[DataMember]
public string HJContent2
{
get;
set;
}
[DataMember]
public int Id
{
get;
set;
}
[DataMember]
public int OrgId
{
get;
set;
}
[DataMember]
public int PetId
{
get;
set;
}
[DataMember]
public string CustomerName
{
get;
set;
}
[DataMember]
public int CustomerId
{
get;
set;
}
[DataMember]
public string PetName
{
get;
set;
}
[DataMember]
public int RegId
{
get;
set;
}
[DataMember]
public string MainSymptom
{
get;
set;
}
[DataMember]
public string Inquiry
{
get;
set;
}
[DataMember]
public string HTMLInquiry
{
get;
set;
}
[DataMember]
public string Symptom
{
get;
set;
}
[DataMember]
public int RecordType
{
get;
set;
}
[DataMember]
public int Physician
{
get;
set;
}
[DataMember]
public int Department
{
get;
set;
}
[DataMember]
public DateTime LastUpdateDate
{
get;
set;
}
[DataMember]
public DateTime CreateDate
{
get;
set;
}
[DataMember]
public string BarCode
{
get;
set;
}
[DataMember]
public int EMRIndex
{
get;
set;
}
[DataMember]
public int MainSymptomCode
{
get;
set;
}
[DataMember]
public int MainSymptomType
{
get;
set;
}
[DataMember]
public string MainSymptomTypeName
{
get;
set;
}
[DataMember]
public string PhysicianName
{
get;
set;
}
[DataMember]
public string DoctorRemark
{
get;
set;
}
public string Text
{
get;
set;
}
public bool Saved
{
get;
set;
}
public int SelectImage
{
get;
set;
}
public int ViewRecord
{
get;
set;
}
public int ShowMore
{
get;
set;
}
public int ReturnVisit
{
get;
set;
}
[DataMember]
public string ZhuSu
{
get;
set;
}
[DataMember]
public DateTime NextDate
{
get;
set;
}
[DataMember]
public DateTime NextDateEnd
{
get;
set;
}
[DataMember]
public string CellPhone
{
get;
set;
}
[DataMember]
public string CardTypeName
{
get;
set;
}
[DataMember]
public string Remark
{
get;
set;
}
[DataMember]
public string CardNumber
{
get;
set;
}
[DataMember]
public string VarietyName
{
get;
set;
}
[DataMember]
public string YJContent
{
get;
set;
}
[DataMember]
public string HJContent
{
get;
set;
}
[DataMember]
public string DoctorTime
{
get;
set;
}
[DataMember]
public int CEMType
{
get;
set;
}
[DataMember]
public string OrgName
{
get;
set;
}
[DataMember]
public int KindOF
{
get;
set;
}
[DataMember]
public string KindOFText
{
get;
set;
}
}
}
namespace Utilities
{
public class XMLUtilities
{
[CompilerGenerated]
[Serializable]
private sealed class <>c__1<T> where T : class, new()
{
public static readonly XMLUtilities.<>c__1<T> <>9 = new XMLUtilities.<>c__1<T>();
public static Func<XElement, string> <>9__1_0;
public static Func<XElement, string> <>9__1_1;
public static Func<XElement, string> <>9__1_2;
public static Func<XElement, string> <>9__1_4;
public static Func<XElement, string[]> <>9__1_3;
internal string <XmlStringToObject>b__1_0(XElement node)
{
return node.Name.LocalName;
}
internal string <XmlStringToObject>b__1_1(XElement node)
{
return node.Value;
}
internal string <XmlStringToObject>b__1_2(XElement node)
{
return node.Name.LocalName;
}
internal string[] <XmlStringToObject>b__1_3(XElement node)
{
IEnumerable<XElement> arg_2F_0 = node.Elements("Value");
Func<XElement, string> arg_2F_1;
if ((arg_2F_1 = XMLUtilities.<>c__1<T>.<>9__1_4) == null)
{
arg_2F_1 = (XMLUtilities.<>c__1<T>.<>9__1_4 = new Func<XElement, string>(XMLUtilities.<>c__1<T>.<>9.<XmlStringToObject>b__1_4));
}
return arg_2F_0.Select(arg_2F_1).ToArray<string>();
}
internal string <XmlStringToObject>b__1_4(XElement innerNode)
{
return (string)innerNode.Attribute("name");
}
}
public static XElement GetXElementFromObject<T>(T objectToSerialize)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
XDocument xDocument = new XDocument();
using (XmlWriter xmlWriter = xDocument.CreateWriter())
{
xmlSerializer.Serialize(xmlWriter, objectToSerialize);
}
return xDocument.Root;
}
public static T XmlStringToObject<T>(string s) where T : class, new()
{
if (typeof(T).GetInterface("IDictionary") != null)
{
if (string.IsNullOrEmpty(s))
{
return Activator.CreateInstance<T>();
}
if (typeof(T) == typeof(Dictionary<string, string>))
{
XElement xElement = XElement.Parse(s);
if (xElement.Elements().Any<XElement>())
{
IEnumerable<XElement> arg_A0_0 = xElement.Elements();
Func<XElement, string> arg_A0_1;
if ((arg_A0_1 = XMLUtilities.<>c__1<T>.<>9__1_0) == null)
{
arg_A0_1 = (XMLUtilities.<>c__1<T>.<>9__1_0 = new Func<XElement, string>(XMLUtilities.<>c__1<T>.<>9.<XmlStringToObject>b__1_0));
}
Func<XElement, string> arg_A0_2;
if ((arg_A0_2 = XMLUtilities.<>c__1<T>.<>9__1_1) == null)
{
arg_A0_2 = (XMLUtilities.<>c__1<T>.<>9__1_1 = new Func<XElement, string>(XMLUtilities.<>c__1<T>.<>9.<XmlStringToObject>b__1_1));
}
return arg_A0_0.ToDictionary(arg_A0_1, arg_A0_2) as T;
}
return Activator.CreateInstance<T>();
}
else if (typeof(T) == typeof(Dictionary<string, string[]>))
{
XElement xElement2 = XElement.Parse(s);
if (xElement2.Elements().Any<XElement>())
{
IEnumerable<XElement> arg_129_0 = xElement2.Elements();
Func<XElement, string> arg_129_1;
if ((arg_129_1 = XMLUtilities.<>c__1<T>.<>9__1_2) == null)
{
arg_129_1 = (XMLUtilities.<>c__1<T>.<>9__1_2 = new Func<XElement, string>(XMLUtilities.<>c__1<T>.<>9.<XmlStringToObject>b__1_2));
}
Func<XElement, string[]> arg_129_2;
if ((arg_129_2 = XMLUtilities.<>c__1<T>.<>9__1_3) == null)
{
arg_129_2 = (XMLUtilities.<>c__1<T>.<>9__1_3 = new Func<XElement, string[]>(XMLUtilities.<>c__1<T>.<>9.<XmlStringToObject>b__1_3));
}
return arg_129_0.ToDictionary(arg_129_1, arg_129_2) as T;
}
return Activator.CreateInstance<T>();
}
}
if (typeof(T).GetInterface("IEnumerable") != null)
{
if (string.IsNullOrEmpty(s))
{
return Activator.CreateInstance<T>();
}
XElement xElement3 = XElement.Parse(s);
if (xElement3.IsEmpty)
{
return Activator.CreateInstance<T>();
}
return new XmlSerializer(typeof(T)).Deserialize(xElement3.CreateReader()) as T;
}
else
{
if (string.IsNullOrEmpty(s))
{
return default(T);
}
XElement xElement4 = XElement.Parse(s);
if (xElement4.IsEmpty)
{
return default(T);
}
return new XmlSerializer(typeof(T)).Deserialize(xElement4.CreateReader()) as T;
}
}
}
}