【问题标题】:Facing issue while deserializing xml Http Response反序列化 xml Http 响应时面临的问题
【发布时间】:2016-02-26 10:05:23
【问题描述】:

我正在尝试将 xml 格式的 HTTPresponse 反序列化为对象。

XML 响应:

<?xml version="1.0" encoding="utf-8" ?> 
- <NPIList>
- <NPI>
  <NPI>1003000118</NPI> 
  <EntityType>Organization</EntityType> 
  <IsOrgSubpart>N</IsOrgSubpart> 
  <OrgName>STEVEN ENGEL PEDIATRICS</OrgName> 
  <FirstLineMailingAddress>1700 NEUSE BLVD</FirstLineMailingAddress> 
  <MailingAddressCityName>NEW BERN</MailingAddressCityName> 
  <MailingAddressStateName>NC</MailingAddressStateName> 
  <MailingAddressPostalCode>28560-2304</MailingAddressPostalCode> 
  <MailingAddressCountryCode>US</MailingAddressCountryCode> 
  <MailingAddressTelephoneNumber>252-637-3799</MailingAddressTelephoneNumber> 
  <MailingAddressFaxNumber>252-633-0944</MailingAddressFaxNumber> 
  <FirstLinePracticeLocationAddress>1700 NEUSE BLVD</FirstLinePracticeLocationAddress> 
  <PracticeLocationAddressCityName>NEW BERN</PracticeLocationAddressCityName> 
  </NPI>
  </NPIList>

我检索xmlhttp响应和反序列化的代码如下:

using (var response = (HttpWebResponse)request.GetResponse())
      {
        var responseValue = string.Empty;

        if (response.StatusCode != HttpStatusCode.OK)
        {
          var message = String.Format("Request failed. Received HTTP {0}", response.StatusCode);
          throw new ApplicationException(message);
        }
       Stream respStream = response.GetResponseStream();
        XmlSerializer ser = new XmlSerializer(typeof(NPIList));
        var resp = (NPIList)ser.Deserialize(respStream);

                    response.Close();
}

我已经创建了我的对象类

   public class NPIList
    {
        public List<NPIObj> NPI { get; set; }
    }

我将变量“resp”的计数设为零。

这是我的 NPIObj 类:

 public class NPIObj
    {
        public string EntityType { get; set; }
        public string FirstLineMailingAddress { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string MailingAddressCityName { get; set; }
        public string MailingAddressCountryCode { get; set; }
        public string MailingAddressPostalCode { get; set; }
        public string MailingAddressStateName { get; set; }
        public string MiddleName { get; set; }
        public string NamePrefix { get; set; }
        public string NPI { get; set; }
        public string OrgName { get; set; }
        public string SecondLineMailingAddress { get; set; }
     }

谁能帮我看看可能是什么问题。

【问题讨论】:

    标签: c# xml xml-serialization deserialization


    【解决方案1】:

    尝试添加XmlElement 属性,例如:

    public class NPIList
        {
            [XmlElement("NPI")]
            public List<NPIObj> NPI { get; set; }
        }
    

    【讨论】:

    • 感谢 bkdev。我尝试使用代码 sn-p 并且工作正常。但是这些值没有复制到 NPIObj 类属性。我也编辑并添加了 NPIOBJ 类。
    • 也感谢分享 NPIOBJ 课程。然后,您可以简单地使用 XmlElement 属性。请参阅上面的编辑
    • 很高兴它成功了。你介意marking it as the answer 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 2012-03-27
    • 2011-06-07
    • 1970-01-01
    相关资源
    最近更新 更多