有没有办法从String创建SyndicationFeed?

Rob*_*ini 2 .net c# linq syndicationfeed

我正在尝试从本地存储的XML数据重新创建SyndicationFeed对象(System.ServiceModel.Syndication).

如果我使用XMLDocument,这将很容易.我会调用LoadXml(字符串).

SyndicationFeed只会从XMLReader加载.XMLReader只接受Stream或其他XMLReader或TextReader.

由于XMLDocument将加载一个字符串,我试图按如下方式(以扩展方法的形式)执行此操作:

    public static SyndicationFeed ToSyndicationFeed(this XmlDocument document)
    {
        Stream thestream = Stream.Null;
        XmlWriter thewriter = XmlWriter.Create(thestream);

        document.WriteTo(thewriter);

        thewriter.Flush();
        XmlReader thereader = XmlReader.Create(thestream);

        SyndicationFeed thefeed = SyndicationFeed.Load(thereader);

        return thefeed;
    }
Run Code Online (Sandbox Code Playgroud)

我不能让这个工作.即使XMLDocument填充了要加载到SyndicationFeed中的Feed,Stream也始终为空.

您可以提供任何帮助或指示将是最有帮助的.

谢谢,罗伯托

Lee*_*Lee 6

由于StringReader扩展了TextReader,因此应该可以:

TextReader tr = new StringReader(xmlString);
XmlReader xmlReader = XmlReader.Create(tr);
SyndicationFeed feed = SyndicationFeed.Load(xmlReader);
Run Code Online (Sandbox Code Playgroud)