繁体   English   中英

跳过XML反序列化中的属性

[英]Skip attributes in XML Deserialization

当前,我使用以下方法反序列化RESTful XML返回:

[DataContract(Name = "Part", Namespace = "")]
public class Part
{
   [DataMember(Order = 1)]
   public string ItemId { get; set; }
   [DataMember(Order = 2)]
   public string ItemDescription { get; set; }
   [DataMember(Order = 3)]
   public string Weight { get; set; }
}

public bool GetPartInformation(string itemId)
{
   var URL = "...some URL...";
   client.BaseAddress = new Uri(URL);

   client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

   HttpResponseMessage response = client.GetAsync(urlParameters).Result;
   if (response.IsSuccessStatusCode)
   {
       Part part = response.Content.ReadAsAsync<Part>().Result;

       Console.WriteLine("ItemId: {0}", part.ItemId);
       Console.WriteLine("Description: {0}", part.ItemDescription);
       Console.WriteLine("Weight: {0}", part.Weight);

       return true;
   }
   else
   {
       Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
       return false;
   }
}

这是XML返回:

<Part>  
    <ItemId>12345</ItemId>  
    <ItemDescription>Item Description</ItemDescription>  
    <Weight>0.5</Weight>  
    <Cost>190.59</Cost>  
</Part>

如果我不想在public class Part获取ItemId,那么不幸的是,不能简单地从public class Part删除这两行:

[DataMember(Order = 1)]
public string ItemId { get; set; }

1)跳过ItemId属性的正确方法是什么?
2)什么是仅获取Cost并忽略其他所有内容的最简单方法? (虽然我没有在示例中将其添加到public class Part中)

如果从要忽略的属性中删除[DataMember]属性,则所有此类属性都将从反序列化中排除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM