Вопрос

Использование системы .NET.ServiceModel.Классы синдикации...

Я хотел бы добавить новый SyndicationElementExtension к SyndicationItem, который будет экспортировать следующий XML:

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

Что - то вроде:

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

Как создать простой SyndicationElementExtension с несколькими атрибутами?

Это было полезно?

Решение 2

Нашел ответ здесь: http://msdn.microsoft.com/en-us/library/bb943475.aspx

Класс SyndicationElementExtensionCollection также может использоваться для создания расширений элементов из экземпляра XmlReader .Это упрощает интеграцию с API-интерфейсами обработки XML такими как XElement, как показано в следующем примере кода.

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

Другие советы

Просто для упрощения для следующего парня, который придет и попытается разобраться в этом, вот рабочий пример добавления миниатюры базового элемента (Приложение RSS 2.0 в данном случае) в соответствии с документацией:

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()
);

Вы также можете удалить атрибуты и просто установить текстовое содержимое после имени тега, если вам нужен простой тег, т. е. <comments>http://my.comments/feed</comments>.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top