0

Webクライアントを使用してXMLコンテンツをWebサービスから逆シリアル化します。

var serializer = new XmlSerializer(typeof(SearchArticles), new XmlRootAttribute("search_articles"));
var results = (SearchArticles)serializer.Deserialize(response.Content.ReadAsStreamAsync().Result);

xmlの内容は次のようになります。

<?xml version=\"1.0\" encoding=\"UTF-8\"?><search_articles><articles hits=\"10134\"><article><id>1763794</id>...

私のモデルは次のようになります。

public class SearchArticles
{
    [XmlElement("articles")]
    public ArticleHelper articles { get; set; }
}

public class ArticleHelper
{
    [XmlAttribute("hits")]
    public long hits { get; set; }
    [XmlElement("article")]
    public List<Article> articles { get; set; }
}

public class Article
{
    public long id { get; set; }
    public string partner { get; set; }
    public string number { get; set; }
    public long number_is_generated { get; set; }
    public string status { get; set; }
    public long company_id { get; set; }
}

これは機能していますが、ArticleHelperを使用しないようにするにはどうすればよいですか?

4

1 に答える 1

0

ArticleHelperを削除するには、次のように変更SearchArticlesArticleます。

public class SearchArticles
{
    [XmlArray("articles")]
    [XmlArrayItem("article", Type = typeof(Article))]
    public List<Article> articles { get; set; }
}

public class Article
{
    public long id { get; set; }
    public string partner { get; set; }
    public string number { get; set; }
    public long number_is_generated { get; set; }
    public string status { get; set; }
    public long company_id { get; set; }
}

ただし、ヒット属性値にアクセスできなくなります。

于 2012-09-13T13:54:50.403 に答える