Класс SyndicationFeed
имеет метод SaveAsAtom10
и метод SaveAsRss20
, оба из которых принимают экземпляр XmlWriter
, который вы может использовать что угодно в качестве основного хранилища для.
Лично я бы выбрал метод SaveAsAtom10
, так как считаю, что Atom - более богатый формат.
Тем не менее, вы можете легко сохранить это в одном отдельном документе большего размера, создав корневой элемент и дочерний элемент в вашем собственном пространстве имен, а затем сохранив содержимое каждого канала в качестве дочернего, например:
<feeds xmlns="http://tempuri.org/MyFeedContainer">
<feed>
<!-- Atom feed -->
</feed>
<feed>
<!-- Rss feed -->
</feed>
<!-- And so on.. -->
</feeds>
Я бы использовал экземпляры XDocument
и XElement
для создания вышеуказанного контейнера, поскольку управление пространством имен на намного проще при использовании этих классы. Кроме того, класс XElement
предоставляет CreateWriter
и CreateReader
, которые будут выставлять экземпляры XmlWriter
и XmlReader
соответственно, которые затем вы можете передать своему SaveAsAtom
/ SaveAsRss20
методов.
Однако я бы хотел, чтобы вы хранили каждый из этих предметов отдельно; В зависимости от того, сколько у вас каналов, создание одного большого супер-документа может быть слишком большой потерей ресурсов, в зависимости от ваших потребностей. Отдельные экземпляры документов, сохраняющиеся в отдельных объектах, к которым вы можете обращаться независимо, вероятно, будут гораздо эффективнее обрабатывать.
Вы все еще можете использовать методы SaveAsAtom10
и SaveAsRss20
для сериализации каналов.