[英]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.