0 out of 6 rated this helpful - Rate this topic

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.

  Name Description
Public method SyndicationFeed() Initializes a new instance of the SyndicationFeed class.
Public method SyndicationFeed(IEnumerable<SyndicationItem>) Initializes a new instance of the SyndicationFeed class with the specified collection of SyndicationItem objects.
Protected method SyndicationFeed(SyndicationFeed, Boolean) Creates a new instance of the SyndicationFeed class with the specified feed.
Public method SyndicationFeed(String, String, Uri) Initializes a new instance of the SyndicationFeed class with the specified title, description, and Uniform Resource Identifier (URI).
Public method SyndicationFeed(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 method SyndicationFeed(String, String, Uri, String, DateTimeOffset) Creates a new instance of the SyndicationFeed class.
Public method SyndicationFeed(String, String, Uri, String, DateTimeOffset, IEnumerable<SyndicationItem>) Creates a new instance of the SyndicationFeed class.
Top
  Name Description
Public property AttributeExtensions Gets a collection of attribute extensions.
Public property Authors Gets a collection of authors of the feed.
Public property BaseUri Gets and sets the base URI for the SyndicationFeed instance.
Public property Categories Gets a collection of categories for the feed.
Public property Contributors Gets a collection of the contributors to the feed.
Public property Copyright Gets and sets copyright information for the feed.
Public property Description Gets and sets a description of the feed.
Public property ElementExtensions Gets the element extensions for the feed.
Public property Generator Gets and sets the generator of the feed.
Public property Id Gets and sets the ID of the feed.
Public property ImageUrl Gets and sets the image URL for the feed.
Public property Items Gets a collection of the feed items contained in the feed.
Public property Language Gets and sets the language of the feed.
Public property LastUpdatedTime Gets and sets the time the feed was last updated.
Public property Links Gets the links associated with the feed.
Public property Title Gets and sets the title of the feed.
Top
  Name Description
Public method Clone Creates a copy of the SyndicationFeed instance.
Protected method CreateCategory Creates a new SyndicationCategory instance.
Protected method CreateItem Creates a new SyndicationItem instance.
Protected method CreateLink Creates a new SyndicationLink instance.
Protected method CreatePerson Creates a new SyndicationPerson instance.
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetAtom10Formatter Gets an Atom10FeedFormatter instance.
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetRss20Formatter() Gets an Rss20FeedFormatter instance.
Public method GetRss20Formatter(Boolean) Gets a new Rss20FeedFormatter instance.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method Static member Load(XmlReader) Loads a syndication feed from the specified XML reader.
Public method Static member Load<TSyndicationFeed>(XmlReader) Loads a SyndicationFeed-derived instance from the specified XmlReader.
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method SaveAsAtom10 Write the syndication feed to the specified XmlWriter in Atom 1.0 format.
Public method SaveAsRss20 Write the syndication feed to the specified XmlWriter in RSS 2.0 format.
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Protected method TryParseAttribute Attempts to parse an attribute extension.
Protected method TryParseElement Attempts to parse an element extension.
Protected method WriteAttributeExtensions Writes the attribute extensions to the specified XmlWriter using the specified syndication version.
Protected method WriteElementExtensions Writes 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, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Not Serializable!?
Why? Please make this serializable in the next release.

Sigh...
Assembly location?
I couldn't get anything using this to compile until I added a reference to System.ServiceModel.Web.dll.
[That would be if you are using .NET 3.5; this class moved to the main System.ServiceModel.dll in .NET 4.0]