【发布时间】:2016-06-28 18:34:45
【问题描述】:
我正在使用这个项目: https://github.com/Microsoft/Windows-appsample-rssreader
我想从 RSS 提要中获取缩略图。现在,问题是我得到错误。我会解释他们。首先看看到目前为止我做了什么。 : 我有这门课:
public class ArticleViewModel : BindableBase
{
public string thumbnail { get; set; }
public string Title { get; set; }
public string Summary { get; set; }
public string Author { get; set; }
public Uri Link { get; set; }
public DateTimeOffset PublishedDate { get; set; }
public string PublishedDateFormatted => PublishedDate.ToString("MMM dd, yyyy h:mm tt").ToUpper();
public override bool Equals(object obj) =>
obj is ArticleViewModel ? (obj as ArticleViewModel).GetHashCode() == GetHashCode() : false;
public override int GetHashCode() => Link.GetHashCode();
private bool? _isStarred = false;
public bool? IsStarred { get { return _isStarred; } set { SetProperty(ref _isStarred, value); } }
}
例如我们取http://coffeeetech.xyz/feed的RSS提要。
现在在这里:
var feed = await new SyndicationClient().RetrieveFeedAsync(feedViewModel.Link);
feedViewModel.Name = String.IsNullOrEmpty(feedViewModel.Name) ? feed.Title.Text : feedViewModel.Name;
feedViewModel.Description = feed.Subtitle?.Text ?? String.Empty;
feed.Items.Select(item => new ArticleViewModel
{
thumbnail = item.thumbnail,
// description = WebUtility.HtmlDecode(description);
Title = item.Title.Text,
Summary = item.Summary == null ? string.Empty :
item.Summary.Text.RegexRemove("\\&.{0,4}\\;").RegexRemove("<.*?>"),
Author = item.Authors.Select(a => a.NodeValue).FirstOrDefault(),
Link = item.ItemUri ?? item.Links.Select(l => l.Uri).FirstOrDefault(),
PublishedDate = item.PublishedDate
})
.ToList().ForEach(article =>
{
var favorites = AppShell.Current.ViewModel.FavoritesFeed;
var existingCopy = favorites.Articles.FirstOrDefault(a => a.Equals(article));
article = existingCopy ?? article;
if (!feedViewModel.Articles.Contains(article)) feedViewModel.Articles.Add(article);
});
return true;
现在,问题是,在 thubmnail = item.thumbnail 行中,我收到“当前上下文中不存在缩略图”的错误
所以问题是如何通过 SyndicationFeed 获取缩略图。我的意思是,项目缩略图在那里不存在。 谢谢。
【问题讨论】:
-
你使用的
item的类型是SyndicationItem。如您所见,此类中没有缩略图属性。当我使用您发布的代码时,我收到以下错误:“'SyndicationItem' 不包含'thumbnail' 的定义,并且找不到接受'SyndicationItem' 类型的第一个参数的扩展方法'thumbnail'(你是缺少 using 指令或程序集引用?)“。您是否更改任何其他代码?你想得到哪个缩略图? 图片是否在频道下? -
这是我的问题。如何在 Syndication 类中添加缩略图之类的内容。我想获取主要的缩略图。