编辑代码

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