SyndicationFeed генерирует неясное исключение после обновления. NET Core с 2.2 до 3.1 - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть. NET Core WebApi, который работал. NET Core 2.2

    [HttpGet]
    [Route("api/news")]
    public IEnumerable<SyndicationItem> GetNews(string source)
    {
        var feed = SyndicationFeed.Load(XmlReader.Create(source));
        return feed.Items;
    }

Я могу вызвать его, перейдя по адресу: https://localhost: 5001 / api / news? source = http://feeds.bbci.co.uk/news/rss.xml

, но после того, как я обновился до. NET Core 3.1, этот код теперь вызывает исключение, из-за которого у меня возникают трудности с поиском в Google

System.NotSupportedException: Тип коллекции «System.Collections.Generi c .Dictionary`2 [System. Xml .XmlQualifiedName, System.String]» в «System.ServiceModel.Syndication.SyndicationItem.AttributeExtensions» не поддерживается. в System.Text. Json .JsonClassInfo.GetElementType (тип propertyType, тип parentType, MemberInfo memberInfo, параметры JsonSerializerOptions) в System.Text. Json .JsonClassInfo.CreateProperty (тип объявленногоPropertyType, свойство свойстваInfoTyfo, типTypefoType, тип runtimeProperper Введите parentClassType, преобразователь JsonConverter, параметры JsonSerializerOptions) в System.Text. Json .JsonClassInfo.AddProperty (введите propertyType, PropertyInfo propertyInfo, введите classType, параметры JsonSerializerOptions) в System.Text. Json .JsonClassInctor... , Параметры JsonSerializerOptions) в System.Text. Json .JsonSerializerOptions.GetOrAddClass (тип classType) в System.Text. Json .JsonClassInfo.get_ElementClassInfo () в System.Text. Json .JsonSerializer.Write (Uson Int32 originalWriterDepth, Int32 flushThreshold, параметры JsonSerializerOptions, WriteStack & state) в System.Text. Json .JsonSerializer.WriteAsyncCore (поток utf8 Json, значение объекта, тип inputTy pe, параметры JsonSerializerOptions, CancellationToken cancellationToken) в Microsoft.AspNetCore. Mvc .Formatters.SystemTextJsonOutputFormatter.WriteResponseBodyAsyn c (контекст OutputFormatterWriteContext, кодирование выбранного кодирования * * * * *). Контекст OutputFormatterWriteContext, кодирование selectedEncoding) в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.g__Awaited | 29_0 [TFilter, TFilterAsync] (вызывающий ResourceInvoker, задача lastTask, следующее состояние, область действия Scope, состояние объекта, Boosean). . Mvc .Infrastructure.ResourceInvoker.Rethrow (контекст ResultExecutedContextSealed) в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.ResultNext [TFilter, TFilterAsync] (State & next, Scope & scope, Object & at). . Mvc .Infrastructure.ResourceInvoker.InvokeResultFilters () --- Конец трассировки стека из предыдущего расположения Исключение было сгенерировано --- в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.g__Awaited | 24_0 (ResourceInvoker invoker, Task lastTask, следующее состояние, область действия области, состояние объекта, логическое состояние isCompleted) в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.Rethrow (контекст ResourceExecutedContextSealed) в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.Next (State & next, Scope & scope, Object & state, Boolean & isCompleted) в Microsoft.AspNetCore. *Inv. InvokeFilterPipelineAsyn c () --- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- в Microsoft.AspNetCore. Mvc .Infrastructure.ResourceInvoker.g__Awaited | 17_0 (средство вызова ResourceInvoker, задача задачи, область IDisposable) в Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask | 6_0 (конечная точка конечной точки, запрос задачи, регистратор ILogger) в Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke (контекст HttpContext)

* 1014 r, когда я отлаживаю его, в отладчике он возвращает элементы фида, как и должно быть

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...