Export (0) Print
Expand All

SyndicationFeed Class

Represents a top-level feed object, <feed> in Atom 1.0 and <rss> in RSS 2.0.

System.Object
  System.ServiceModel.Syndication.SyndicationFeed

Namespace:  System.ServiceModel.Syndication
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public class SyndicationFeed

The SyndicationFeed type exposes the following members.

  NameDescription
Public methodSyndicationFeed()Initializes a new instance of the SyndicationFeed class.
Public methodSyndicationFeed(IEnumerable<SyndicationItem>)Initializes a new instance of the SyndicationFeed class with the specified collection of SyndicationItem objects.
Protected methodSyndicationFeed(SyndicationFeed, Boolean)Creates a new instance of the SyndicationFeed class with the specified feed.
Public methodSyndicationFeed(String, String, Uri)Initializes a new instance of the SyndicationFeed class with the specified title, description, and Uniform Resource Identifier (URI).
Public methodSyndicationFeed(String, String, Uri, IEnumerable<SyndicationItem>)Initializes a new instance of the SyndicationFeed class with the specified title, description, URI, and collection of SyndicationItem objects.
Public methodSyndicationFeed(String, String, Uri, String, DateTimeOffset)Creates a new instance of the SyndicationFeed class.
Public methodSyndicationFeed(String, String, Uri, String, DateTimeOffset, IEnumerable<SyndicationItem>)Creates a new instance of the SyndicationFeed class.
Top

  NameDescription
Public propertyAttributeExtensionsGets a collection of attribute extensions.
Public propertyAuthorsGets a collection of authors of the feed.
Public propertyBaseUriGets and sets the base URI for the SyndicationFeed instance.
Public propertyCategoriesGets a collection of categories for the feed.
Public propertyContributorsGets a collection of the contributors to the feed.
Public propertyCopyrightGets and sets copyright information for the feed.
Public propertyDescriptionGets and sets a description of the feed.
Public propertyElementExtensionsGets the element extensions for the feed.
Public propertyGeneratorGets and sets the generator of the feed.
Public propertyIdGets and sets the ID of the feed.
Public propertyImageUrlGets and sets the image URL for the feed.
Public propertyItemsGets a collection of the feed items contained in the feed.
Public propertyLanguageGets and sets the language of the feed.
Public propertyLastUpdatedTimeGets and sets the time the feed was last updated.
Public propertyLinksGets the links associated with the feed.
Public propertyTitleGets and sets the title of the feed.
Top

  NameDescription
Public methodCloneCreates a copy of the SyndicationFeed instance.
Protected methodCreateCategoryCreates a new SyndicationCategory instance.
Protected methodCreateItemCreates a new SyndicationItem instance.
Protected methodCreateLinkCreates a new SyndicationLink instance.
Protected methodCreatePersonCreates a new SyndicationPerson instance.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetAtom10FormatterGets an Atom10FeedFormatter instance.
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetRss20Formatter()Gets an Rss20FeedFormatter instance.
Public methodGetRss20Formatter(Boolean)Gets a new Rss20FeedFormatter instance.
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodStatic memberLoad(XmlReader)Loads a syndication feed from the specified XML reader.
Public methodStatic memberLoad<TSyndicationFeed>(XmlReader)Loads a SyndicationFeed-derived instance from the specified XmlReader.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodSaveAsAtom10Write the syndication feed to the specified XmlWriter in Atom 1.0 format.
Public methodSaveAsRss20Write the syndication feed to the specified XmlWriter in RSS 2.0 format.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Protected methodTryParseAttributeAttempts to parse an attribute extension.
Protected methodTryParseElementAttempts to parse an element extension.
Protected methodWriteAttributeExtensionsWrites the attribute extensions to the specified XmlWriter using the specified syndication version.
Protected methodWriteElementExtensionsWrites the element extensions to the specified XmlWriter using the specified syndication version.
Top

When serialized to Atom 1.0, a SyndicationFeed instance is written to a <feed> element. The following table shows how each property defined in the SyndicationFeed class is serialized to Atom 1.0.

SyndicationFeed property

Serialized form

AttributeExtensions

An attribute in the <feed> element for each attribute in the collection.

Authors

An <author> element for each SyndicationPerson in the collection.

Categories

A <category> element for each SyndicationCategory in the collection.

Contributors

A <contributor> element for each SyndicationPerson in the collection.

Copyright

A <rights> element.

Description

A <subtitle> element.

ElementExtensions

Each element in the collection is written within the <feed> element.

Generator

A <generator> element.

Id

An <id> element.

ImageUri

A <logo> element.

Items

An <entry> element for each SyndicationItem in the collection.

Language

Not serialized.

LastUpdatedTime

An <updated> element.

Links

A <link> element for each SyndicationLink in the collection.

Title

A <title> element.

When serialized to RSS 2.0, a SyndicationFeed instance is written to an <rss> element. The following table shows how each property defined in the SyndicationFeed class is serialized to RSS 2.0.

SyndicationFeed property

Serialized form

AttributeExtensions

An attribute in the <channel> element for each attribute in the collection.

Authors

A <managingEditor> element if only one SyndicationPerson is in the collection; otherwise, an <a10:author> element for each SyndicationPerson in the collection.

Categories

A <category> element for each SyndicationCategory in the collection.

Contributors

An <a10:contributor> element for each SyndicationPerson in the collection.

Copyright

A <copyright> element.

Description

A <description> element.

ElementExtensions

Each element in the collection is written within the <channel> element.

Generator

A <generator> element.

Id

An <a10:id> element.

ImageUri

An <image> element.

Items

An <item> element for each SyndicationItem in the collection.

Language

A <language> element.

LastUpdatedTime

A <lastBuildDate> element.

Links

An <a10:link> element for each SyndicationLink in the collection.

Title

A <title> element.

The following code shows how to create a SyndicationFeed instance and serialize it to both Atom 1.0 and 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();

The following XML shows how a SyndicationFeed is serialized to 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>

The following XML shows how a SyndicationFeed instance is serialized to RSS 2.0.

<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel CustomAttribute="Value">
    <title>Feed Title</title>
    <link>http://feed/Alternate/Link</link>
    <description>This is a sample feed</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>Feed 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>Item Title</title>
      <description>Some text content</description>
      <a10:updated>2007-04-13T17:29:38Z</a10:updated>
    </item>
  </channel>
</rss>

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft