1. 程式人生 > WINDOWS開發 >C# xml轉換為物件

C# xml轉換為物件

<responses> 
  <response> 
    <order_serial_no>xfs101100111012</order_serial_no>  
    <mail_no>4060005668136</mail_no>  
    <pdf_info>王志奇gfz</pdf_info>  
    <status>1</status>  
    <msg>更新訂單請使用更新介面</msg> 
  </response> 
</responses>

C#類

    [XmlRoot("responses")]
    public class Responses
    {
        //[XmlElement("response")]
        public YUN_DA_Response response { get; set; }

        public Responses()
        {
            response = new YUN_DA_Response();
        }
    }

    public class YUN_DA_Response
    {
        
public string order_serial_no { get; set; } public string mail_no { get; set; } public string status { get; set; } public string msg { get; set; } public string pdf_info { get; set; } }

轉換:

 /// <summary>
        /// 反序列化
        /// </summary>
        /// <typeparam name="T">
實體</typeparam> /// <param name="strXml">xml檔案</param> /// <returns></returns> public T Deserialize<T>(string strXml) where T : class { try { object obj; using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(strXml))) { using (XmlReader xmlReader = XmlReader.Create(memoryStream)) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); obj = xmlSerializer.Deserialize(xmlReader); } } return obj as T; } catch (Exception ex) { return null; } }

            string testStr = @"
<responses> 
  <response> 
    <order_serial_no>xfs101100111012</order_serial_no>  
    <mail_no>4060005668136</mail_no>  
    <pdf_info>王志奇gfz</pdf_info>  
    <status>1</status>  
    <msg>更新訂單請使用更新介面</msg> 
  </response> 
</responses>
";

            var _t = Deserialize<Responses>(testStr);