Я пытаюсь получить элементы из rss-канала, но порой я получаю TargetInvocationException, «неспособный подключиться к удаленному серверу». Я пытаюсь использовать блок catch try, чтобы поймать эту ошибку, но я не управляю, поскольку мне нужен переменный фид, который будет использоваться во всем другом коде, и, как это, он не отображается. Какие-либо предложения?Исключение цели Invocation в async-методе
public static async Task<List<FeedItem>> getFeedsAsync(string url)
{
//The web object that will retrieve our feeds..
SyndicationClient client = new SyndicationClient();
//The URL of our feeds..
Uri feedUri = new Uri(url);
//Retrieve async the feeds..
try
{
var feed = await client.RetrieveFeedAsync(feedUri);
}
catch (TargetInvocationException e)
{
}
//The list of our feeds..
List<FeedItem> feedData = new List<FeedItem>();
//Fill up the list with each feed content..
foreach (SyndicationItem item in feed.Items)
{
FeedItem feedItem = new FeedItem();
feedItem.Content = item.Summary.Text;
feedItem.Link = item.Links[0].Uri;
feedItem.PubDate = item.PublishedDate.DateTime;
feedItem.Title = item.Title.Text;
try
{
feedItem.Author = item.Authors[0].Name;
}
catch(ArgumentException)
{ }
feedData.Add(feedItem);
}
return feedData;
}
}
}
Если я использую это, я получаю сообщение об ошибке, которое я не могу преобразовать из Windows.Web.Syndication.SyndicationFeed в Windows.Foundation. IAsyncOperationWithProgress
@TamaraCaligari. Вы должны использовать определенный тип, возвращаемый 'RetrieveFeedAsync'. Кажется, что у вас проблема с «использованием», поэтому попробуйте использовать полное квалифицированное имя. – i3arnon