サードパーティの 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 型の poco のリストに変換したいと思います。
[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;