2009-07-02 20 views
8

mit .NET System.ServiceModel.Syndication Klassen hinzufügen ...Wie man ein SyndicationElementExtension To A SyndicationItem

Ich mag würde eine neue SyndicationElementExtension zu einem SyndicationItem hinzuzufügen, die die folgenden XML exportieren:

<media:thumbnail url="http://www.foo.com/keyframe.jpg" width="75" height="50" time="12:05:01.123" /> 

Etwas entlang der Linien von:

syndicationItem.ElementExtensions.Add(new SyndicationElementExtension("thumbnail", "http://video.search.yahoo.com/mrss", ? 

Wie erstellen Sie eine einfache SyndicationElementExtension mit ein paar Attribute?

Antwort

10

Konnten Sie die Antwort hier: http://msdn.microsoft.com/en-us/library/bb943475.aspx

Die SyndicationElementExtensionCollection Klasse kann auch verwendet werden Elementerweiterungen von einem XmlReader Instanz zu erstellen. Dies ermöglicht eine einfache Integration mit XML-Verarbeitung APIs wie XElement wie in den folgenden Beispielcode gezeigt.

feed.ElementExtensions.Add(new XElement("xElementExtension", 
     new XElement("Key", new XAttribute("attr1", "someValue"), "Z"), 
     new XElement("Value", new XAttribute("attr1", "someValue"), 
     "15")).CreateReader()); 
11

Gerade für den nächsten Mann zu vereinfachen, die diese Zahl zusammen versucht, kommen heraus, hier ist ein funktionierendes Beispiel eines grundlegendes Element Miniaturbild (RSS 2.0 in diesem Fall) entlang der Linien von der des Hinzufügen Dokumentation:

SyndicationItem item = new SyndicationItem(); 

// populate item... 

item.ElementExtensions.Add(
    new XElement("enclosure", 
     new XAttribute("type", "image/jpeg"), 
     new XAttribute("url", "http://path.to/my/image.jpg") 
    ).CreateReader() 
); 

Sie können auch die Attribute und nur gesetzt Textinhalt nach dem Tag-Namen-Dump, wenn Sie einen einfachen Tag wollen, das heißt <comments>http://my.comments/feed</comments>.

+0

wie Dump Sie die Attribute? Wenn ich nicht passieren jede und auch nicht den Namensraum für ein Element übergeben, fügt es das Attribut xmlns = „“ sowieso. – Hallaghan

+0

Hmm, ich sehe nicht, dass an meinem Ende geschieht, die 'xmlns =„“' Attribut nur auf dem äußeren ' Element' angegeben ist. Können Sie ein Beispiel veröffentlichen? – nickb