使用Atom10ItemFormatter序列化的SyndicationItem返回空输出

时间:2012-01-03 17:58:22

标签: c# .net atom-feed

private static string SerializeItem(SyndicationItem item)
{
    StringBuilder builder = new StringBuilder();
    Atom10ItemFormatter formatter = new Atom10ItemFormatter(item);
    formatter.WriteTo(XmlWriter.Create(builder));
    return builder.ToString();
}

返回空字符串。为什么? item是从Feed收到的有效原子条目。

1 个答案:

答案 0 :(得分:1)

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();
}