我正在尝试与第 3 方 REST API 集成。此 API 始终将其所有资源作为 Asset 类型返回,并将其属性作为 Attribute 类型返回。它使用属性节点上的属性来提供属性名称。xml 内容如下:
<Assets>
<Asset>
<Attribute name="AssetType">Story</Attribute>
<Attribute name="OwnerName">Fred Blogs</Attribute>
<Attribute name="Name">The Lord of the Rings</Attribute>
...
</Asset>
...
</Assets>
我想使用 DataContractSerializer (或 XmlSerializer 可能?)将其转换为 Story 类型的 pocos 列表。
[DataContract(Name="Asset")]
public class Story
{
public string OwnerName { get; set; }
public string Name { get; set; }
}
据我所知,DataMember 属性适用于节点的名称,而不是节点属性的值。有没有办法解决这个问题?
我想最终得到一个这样的WebAPI客户端阅读..
var client = new HttpClient();
var result = client.GetAsync(uri).Result;
var stories = r.Content.ReadAsAsync<List<Story>>().Result;