我正在使用此示例编写RSS阅读器
https://github.com/dotnet/SyndicationFeedReaderWriter
我想记录所有
ISyndicationItem
的以列表形式返回。我得到的编译器错误是“error CS1983
async
方法必须为
void
,
Task
,
Task<T>
,类任务类型,
IAsyncEnumerable<T>
或
IAsyncEnumerator<T>
“最理想的方法是什么?
using Microsoft.SyndicationFeed;
using Microsoft.SyndicationFeed.Rss;
using System.Collections.Generic;
using System.Xml;
static async List<ISyndicationItem> ReadRSSFeed(string inputUri)
{
var itemList = new List<ISyndicationItem>();
using (var xmlReader = XmlReader.Create(inputUri,
new XmlReaderSettings() { Async = true }))
{
var feedReader = new RssFeedReader(xmlReader);
while (await feedReader.Read())
{
switch (feedReader.ElementType)
{
case SyndicationElementType.Category:
ISyndicationCategory category = await feedReader.ReadCategory();
break;
case SyndicationElementType.Image:
ISyndicationImage image = await feedReader.ReadImage();
break;
case SyndicationElementType.Item:
ISyndicationItem item = await feedReader.ReadItem();
itemList.Add(item);
break;
case SyndicationElementType.Link:
ISyndicationLink link = await feedReader.ReadLink();
break;
case SyndicationElementType.Person:
ISyndicationPerson person = await feedReader.ReadPerson();
break;
default:
ISyndicationContent content = await feedReader.ReadContent();
break;
}
}
}
return itemList;
}