SyndicationItem, сериализованный с Atom10ItemFormatter, возвращает пустой вывод - PullRequest
1 голос
/ 03 января 2012
private static string SerializeItem(SyndicationItem item)
{
    StringBuilder builder = new StringBuilder();
    Atom10ItemFormatter formatter = new Atom10ItemFormatter(item);
    formatter.WriteTo(XmlWriter.Create(builder));
    return builder.ToString();
}

Возвращает пустую строку. Зачем? item является действительной записью атома, полученной из канала.

1 Ответ

1 голос
/ 03 января 2012

XmlWriter не удаляется / сбрасывается, поэтому построитель вывода не был записан в.

Следующий пример работает:

static void Main(string[] args)
{
    SyndicationFeed feed = null;

    using (var reader = XmlReader.Create("http://stackoverflow.com/feeds"))
    {
        feed = SyndicationFeed.Load(reader);
    }

    foreach(var item in feed.Items)
    {
        Console.WriteLine(SerializeItem(item));
    }
}

private static string SerializeItem(SyndicationItem item)
{
    var output      = new StringBuilder();
    var formatter   = new Atom10ItemFormatter(item);

    using (var writer = XmlWriter.Create(output))
    {
        formatter.WriteTo(writer);
    }

    return output.ToString();
}
...