SyndicationFeed Класс

Определение

Представляет объект веб-канала верхнего уровня: <feed> в Atom 1.0 и <rss> в RSS 2.0.

public ref class SyndicationFeed
public class SyndicationFeed
type SyndicationFeed = class
Public Class SyndicationFeed
Наследование
SyndicationFeed

Примеры

В следующем примере кода показано, как создать экземпляр SyndicationFeed и выполнить его сериализацию в Atom 1.0 и RSS 2.0.

SyndicationFeed feed = new SyndicationFeed("Feed Title", "Feed Description", new Uri("http://Feed/Alternate/Link"), "FeedID", DateTime.Now);
// Add a custom attribute.
XmlQualifiedName xqName = new XmlQualifiedName("CustomAttribute");
feed.AttributeExtensions.Add(xqName, "Value");

SyndicationPerson sp = new SyndicationPerson("jesper@contoso.com", "Jesper Aaberg", "http://Jesper/Aaberg");
feed.Authors.Add(sp);

SyndicationCategory category = new SyndicationCategory("FeedCategory", "CategoryScheme", "CategoryLabel");
feed.Categories.Add(category);

feed.Contributors.Add(new SyndicationPerson("lene@contoso.com", "Lene Aaling", "http://lene/aaling"));
feed.Copyright = new TextSyndicationContent("Copyright 2007");
feed.Description = new TextSyndicationContent("This is a sample feed");

// Add a custom element.
XmlDocument doc = new XmlDocument();
XmlElement feedElement = doc.CreateElement("CustomElement");
feedElement.InnerText = "Some text";
feed.ElementExtensions.Add(feedElement);

feed.Generator = "Sample Code";
feed.Id = "FeedID";
feed.ImageUrl = new Uri("http://server/image.jpg");

TextSyndicationContent textContent = new TextSyndicationContent("Some text content");
SyndicationItem item = new SyndicationItem("Item Title", textContent, new Uri("http://server/items"), "ItemID", DateTime.Now);

List<SyndicationItem> items = new List<SyndicationItem>();
items.Add(item);
feed.Items = items;

feed.Language = "en-us";
feed.LastUpdatedTime = DateTime.Now;

SyndicationLink link = new SyndicationLink(new Uri("http://server/link"), "alternate", "Link Title", "text/html", 1000);
feed.Links.Add(link);

XmlWriter atomWriter = XmlWriter.Create("atom.xml");
Atom10FeedFormatter atomFormatter = new Atom10FeedFormatter(feed);
atomFormatter.WriteTo(atomWriter);
atomWriter.Close();

XmlWriter rssWriter = XmlWriter.Create("rss.xml");
Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(feed);
rssFormatter.WriteTo(rssWriter);
rssWriter.Close();
Dim feed As SyndicationFeed = New SyndicationFeed("Feed Title", "Feed Description", New Uri("http:'Feed/Alternate/Link"), "FeedID", DateTime.Now)
' Add a custom attribute.
Dim xqName As XmlQualifiedName = New XmlQualifiedName("CustomAttribute")
feed.AttributeExtensions.Add(xqName, "Value")

Dim sp As SyndicationPerson = New SyndicationPerson("jesper@contoso.com", "Jesper Aaberg", "http:'jesper/aaberg")
feed.Authors.Add(sp)

Dim category As SyndicationCategory = New SyndicationCategory("FeedCategory", "CategoryScheme", "CategoryLabel")
feed.Categories.Add(category)

feed.Contributors.Add(New SyndicationPerson("Lene@contoso.com", "Lene Aaling", "http:'Lene/Aaling"))
feed.Copyright = New TextSyndicationContent("Copyright 2007")
feed.Description = New TextSyndicationContent("This is a sample feed")

' Add a custom element.
Dim doc As XmlDocument = New XmlDocument()
Dim feedElement As XmlElement = doc.CreateElement("CustomElement")
feedElement.InnerText = "Some text"
feed.ElementExtensions.Add(feedElement)

feed.Generator = "Sample Code"
feed.Id = "FeedID"
feed.ImageUrl = New Uri("http:'server/image.jpg")

Dim textContent As TextSyndicationContent = New TextSyndicationContent("Some text content")
Dim item As SyndicationItem = New SyndicationItem("Item Title", textContent, New Uri("http:'server/items"), "ItemID", DateTime.Now)

Dim items As Collection(Of SyndicationItem) = New Collection(Of SyndicationItem)()
items.Add(item)
feed.Items = items

feed.Language = "en-us"
feed.LastUpdatedTime = DateTime.Now

Dim link As SyndicationLink = New SyndicationLink(New Uri("http:'server/link"), "alternate", "Link Title", "text/html", 1000)
feed.Links.Add(link)

Dim atomWriter As XmlWriter = XmlWriter.Create("atom.xml")
Dim atomFormatter As Atom10FeedFormatter = New Atom10FeedFormatter(feed)
atomFormatter.WriteTo(atomWriter)
atomWriter.Close()

Dim rssWriter As XmlWriter = XmlWriter.Create("rss.xml")
Dim rssFormatter As Rss20FeedFormatter = New Rss20FeedFormatter(feed)
rssFormatter.WriteTo(rssWriter)
rssWriter.Close()

В следующем XML-коде показано, как объект SyndicationFeed сериализуется в Atom 1.0.

<feed xml:lang="en-us" CustomAttribute="Value" xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Feed Title</title>
  <subtitle type="text">This is a sample feed</subtitle>
  <id>FeedID</id>

  <rights type="text">Copyright 2007</rights>
  <updated>2007-04-13T17:29:38Z</updated>
  <category term="FeedCategory" label="CategoryLabel" scheme="CategoryScheme" />
  <logo>http://contoso/image.jpg</logo>
  <author>
    <name>Jesper Aaberg</name>
    <uri>http://contoso/Aaberg</uri>
    <email>Jesper.Asberg@contoso.com</email>
  </author>
  <contributor>
    <name>Lene Aalling</name>
    <uri>http://contoso/Aalling</uri>
    <email>Lene.Aaling@contoso.com</email>
  </contributor>
  <generator>Sample Code</generator>
  <link rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" />

  <link customAttribute="value" rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" />
  <CustomElement xmlns="">Some text</CustomElement>
  <entry>
    <id>ItemID</id>
    <title type="text">Item Title</title>
    <updated>2007-04-13T17:29:38Z</updated>
    <link rel="alternate" href="http://contoso/items" />
    <content type="text">Some text content</content>
  </entry>

</feed>

В следующем XML-коде показано, как экземпляр SyndicationFeed сериализуется в RSS 2.0.

<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel CustomAttribute="Value">
    <title>Название веб-канала</title>
    <link>http://feed/Alternate/Link</link>
    <description>Это пример веб-канала</description>
    <language>en-us</language>

    <copyright>Copyright 2007</copyright>

    <managingEditor>Jesper.Aaberg@contoso.com</managingEditor>
    <lastBuildDate>Fri, 13 Apr 2007 17:29:38 Z</lastBuildDate>
    <category domain="CategoryScheme">FeedCategory</category>
    <a10:link rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" />
    <generator>Sample Code</generator>
    
    <a10:contributor>
      <a10:name>Lene Aalling</a10:name>
      <a10:uri>http://contoso/Aalling</a10:uri>
      <a10:email>Lene.Aalling@contoso.com</a10:email>
    </a10:contributor>
    
    <a10:author>
      <a10:name>Lene Aalling</a10:name>
      <a10:uri>http://contoso/Aalling</a10:uri>
      <a10:email>Lene.Aalling@contoso.com</a10:email>
    </a10:author>
    <image>
      <url>http://contoso/image.jpg</url>
      <title>Название веб-канала</title>
      <link>http://feed/Alternate/Link</link>
    </image>
    <a10:id>FeedID</a10:id>
    <a10:link customAttribute="value" rel="alternate" type="text/html" title="Link Title" length="1000" href="http://contoso/link" />
    
    <CustomElement>Some text</CustomElement>
    <item>
      <guid isPermaLink="false">ItemID</guid>
      <link>http://contoso/items</link>
      <title>Заголовок элемента</title>
      <description>Некоторое текстовое содержимое</description>
      <a10:updated>2007-04-13T17:29:38Z</a10:updated>
    </item>
  </channel>
</rss>

Комментарии

При сериализации в Atom 1.0 SyndicationFeed экземпляр записывается в <feed> элемент. Следующая таблица показывает, как выполняется сериализация в Atom 1.0 для каждого свойства, определенного в классе SyndicationFeed.

Свойство SyndicationFeed Сериализованная форма
AttributeExtensions Атрибут в элементе <feed> для каждого атрибута в коллекции.
Authors Элемент <author> для каждого SyndicationPerson элемента в коллекции.
Categories Элемент <category> для каждого SyndicationCategory элемента в коллекции.
Contributors Элемент <contributor> для каждого SyndicationPerson элемента в коллекции.
Copyright Элемент <rights>.
Description Элемент <subtitle>.
ElementExtensions Каждый элемент в коллекции записывается внутри <feed> элемента.
Generator Элемент <generator>.
Id Элемент <id>.
ImageUri Элемент <logo>.
Items Элемент <entry> для каждого SyndicationItem элемента в коллекции.
Language Не является сериализованным.
LastUpdatedTime Элемент <updated>.
Links Элемент <link> для каждого SyndicationLink элемента в коллекции.
Title Элемент <title>.

При сериализации в RSS 2.0 экземпляр SyndicationFeed записывается в элемент <rss>. Следующая таблица показывает, как выполняется сериализация в RSS 2.0 для каждого свойства, определенного в классе SyndicationFeed.

Свойство SyndicationFeed Сериализованная форма
AttributeExtensions Атрибут в элементе <channel> для каждого атрибута в коллекции.
Authors Элемент, <managingEditor> если в коллекции находится только один SyndicationPerson ; в противном случае — <a10:author> элемент для каждой SyndicationPerson коллекции.
Categories Элемент <category> для каждого SyndicationCategory элемента в коллекции.
Contributors Элемент <a10:contributor> для каждого SyndicationPerson элемента в коллекции.
Copyright Элемент <copyright>.
Description Элемент <description>.
ElementExtensions Каждый элемент в коллекции записывается внутри <channel> элемента.
Generator Элемент <generator>.
Id Элемент <a10:id>.
ImageUri Элемент <image>.
Items Элемент <item> для каждого SyndicationItem элемента в коллекции.
Language Элемент <language>.
LastUpdatedTime Элемент <lastBuildDate>.
Links Элемент <a10:link> для каждого SyndicationLink элемента в коллекции.
Title Элемент <title>.

Конструкторы

SyndicationFeed()

Инициализирует новый экземпляр класса SyndicationFeed.

SyndicationFeed(IEnumerable<SyndicationItem>)

Инициализирует новый экземпляр класса SyndicationFeed с указанной коллекцией объектов SyndicationItem.

SyndicationFeed(String, String, Uri)

Инициализирует новый экземпляр класса SyndicationFeed с заданным заголовком, описанием и универсальным кодом ресурса (URI).

SyndicationFeed(String, String, Uri, IEnumerable<SyndicationItem>)

Инициализирует новый экземпляр класса SyndicationFeed с заданным заголовком, описанием, универсальным кодом ресурса (URI) и коллекцией объектов SyndicationItem.

SyndicationFeed(String, String, Uri, String, DateTimeOffset)

Создает новый экземпляр класса SyndicationFeed.

SyndicationFeed(String, String, Uri, String, DateTimeOffset, IEnumerable<SyndicationItem>)

Создает новый экземпляр класса SyndicationFeed.

SyndicationFeed(SyndicationFeed, Boolean)

Создает новый экземпляр класса SyndicationFeed с указанным веб-каналом.

Свойства

AttributeExtensions

Возвращает коллекцию расширений атрибутов.

Authors

Возвращает коллекцию авторов веб-канала.

BaseUri

Получает или задает базовый универсальный код ресурса (URI) для экземпляра SyndicationFeed.

Categories

Возвращает коллекцию категорий веб-канала.

Contributors

Возвращает коллекцию участников веб-канала.

Copyright

Получает или задает сведения об авторских правах для веб-канала.

Description

Получает или задает описание веб-канала.

Documentation

Возвращает или задает ссылку на документацию для веб-канала.

ElementExtensions

Возвращает расширения элемента для веб-канала.

Generator

Получает или задает генератор веб-канала.

Id

Получает или задает идентификатор веб-канала.

ImageUrl

Получает или задает URL-адрес изображения для веб-канала.

Items

Возвращает коллекцию элементов веб-канала, содержащихся в веб-канале.

Language

Получает или задает язык для веб-канала.

LastUpdatedTime

Получает или задает время последнего обновления веб-канала.

Links

Возвращает ссылки, связанные с веб-каналом.

SkipDays

Возвращает коллекцию строк, указывающую набор значений в элементе "skipDays" для веб-канала.

SkipHours

Возвращает коллекцию целых чисел, указывающую набор значений в элементе "skipHours" для веб-канала.

TextInput

Возвращает или задает свойство TextInput для веб-канала.

TimeToLive

Возвращает или задает атрибут "ttl" для веб-канала.

Title

Возвращает или задает заголовок канала.

Методы

Clone(Boolean)

Создает копию экземпляра SyndicationFeed.

CreateCategory()

Создает новый экземпляр SyndicationCategory.

CreateItem()

Создает новый экземпляр SyndicationItem.

CreateLink()

Создает новый экземпляр SyndicationLink.

CreatePerson()

Создает новый экземпляр SyndicationPerson.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetAtom10Formatter()

Возвращает экземпляр Atom10FeedFormatter.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetRss20Formatter()

Возвращает экземпляр Rss20FeedFormatter.

GetRss20Formatter(Boolean)

Возвращает новый экземпляр Rss20FeedFormatter.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
Load(XmlReader)

Загружает веб-канал синдикации из указанного средства чтения XML.

Load<TSyndicationFeed>(XmlReader)

Загружает производный экземпляр SyndicationFeed из указанного объекта XmlReader.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
SaveAsAtom10(XmlWriter)

Запишите веб-канал синдикации в заданный экземпляр XmlWriter в формате Atom 1.0.

SaveAsRss20(XmlWriter)

Запишите веб-канал синдикации в заданный экземпляр XmlWriter в формате RSS 2.0.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TryParseAttribute(String, String, String, String)

Пытается проанализировать расширение атрибута.

TryParseElement(XmlReader, String)

Пытается проанализировать расширение элемента.

WriteAttributeExtensions(XmlWriter, String)

Записывает расширения атрибутов в указанный экземпляр XmlWriter с использованием указанной версии механизма синдикации.

WriteElementExtensions(XmlWriter, String)

Записывает расширения элемента в указанный экземпляр XmlWriter с использованием указанной версии механизма синдикации.

Применяется к