c# - 将 MRSS(媒体)添加到 SyndicationFeed

标签 c# media syndication-feed

我有一个联合供稿。 使用 Rss20FeedFormatter 进行序列化时,我得到了在 xml 中声明的 xmlns:cf 和 xmlns:cfi 命名空间。 媒体元素保持内联。

<media:thumbnail media:url="http://arwen.palantir.za:8080/signate/thumbnail/dXVpZDoxNjlkMzIyOS0zYjk5LTQ2NDctOTc5MS00OTJiYmJmNGM0MTkvUEdTMDkwMC5QREY=" media:width="200" media:height="200" xmlns="http://www.w3.org/2005/Atom" xmlns:a="http://search.yahoo.com/mrss" xmlns:media="http://search.yahoo.com/mrss"></media:thumbnail>

我确信这就是缩略图无法正确显示的原因。 如何添加媒体:缩略图并使其正常工作。我使用的是Windows 7搜索查看,所以它肯定支持缩略图。

我希望在 xml header 中声明的媒体应该是这样的。

这是我的代码:

        item.ElementExtensions.Add(
            new XElement(mrss + "thumbnail",
                new XAttribute(XNamespace.Xmlns + "media", mrss),
                new XAttribute(mrss + "url", url + Convert.ToBase64String(Encoding.ASCII.GetBytes(item.Id))),
                new XAttribute(mrss + "width", 200),
                new XAttribute(mrss + "height", 200)
            ).CreateReader());

最佳答案

正如 Cragly 所解释的那样,您当然需要添加正确的命名空间,但以下是如何创建适当的 media:thumbnail 元素:

    XNamespace _yahooMediaNamespace = "http://search.yahoo.com/mrss/";
    // Result is a SyndicationItem
    result.ElementExtensions.Add(
        new SyndicationElementExtension(
            new XElement(
                _yahooMediaNamespace + "thumbnail", 
                new XAttribute("url", "http://www.example.com/image.jpg")
            )
        )
    );

关于c# - 将 MRSS(媒体)添加到 SyndicationFeed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1778207/

相关文章:

c# - ComponentMetaData.FireError 方法在 SSIS 脚本组件中的作用是什么

c# - 是否可以在 .NET 中使用两个不同名称的相同属性

python - Django - 服务用户上传的图片

c# - 从 C# SyndicationFeed 读取所有 rss 项目

c# - ASP.NET Core 3.1 SHA512 和 SHA256Managed 有什么区别

django - 可以将 Wagtail 文档上传到/documents/的子​​文件夹

html - 为什么我的网页变成蓝色

php - 是否可以使用 php 在 RSS 提要中使用身份验证?

c# - RelayCommand 不会在按钮单击时执行