Что не так с этим определением класса?(Связано с: SwaggerDefaultValues.cs) - PullRequest
0 голосов
/ 26 февраля 2019

Я создал класс, как показано ниже.У меня есть похожие классы в моем проекте, ни один из них не вызывает ошибки, кроме этого.Я не могу найти никаких проблем в своем классе, но это вызывает исключение. В моей переменной description свойство ModelMetadata равно нулю, что является причиной ошибки.

Вот как описание переменная определена в моем SwaggerDefaultValues.cs

var description = context.ApiDescription.ParameterDescriptions.First(p => p.Name == parameter.Name);

И здесь выдается исключение, ModelMetadata имеет значение null, что является причиной System.NullReferenceException:

parameter.Description = description.ModelMetadata.Description;

(Пожалуйста, смотрите скриншот для подробностей ...)

Когда я отслеживаю свой код, это определение класса вызывает проблему,

CardPlusCNumberUpdateQueryParameter class:

using System;
using System.ComponentModel.DataAnnotations;

namespace WestCore.AppCore.Services.PCsbins.Customer
{
    public class CardPlusCNumberUpdateQueryParameter
    {
        /// <summary>
        /// Customer Number
        /// </summary>
        [Range(1, 999999)]
        [Required]
        public int CustomerNumber { get; set; }


        /// <summary>
        /// CardPlus Customer Number
        /// </summary>
        [Required]
        public string CardPlusCustomerNumber { get; set; }
    }
}

StackTrace:

at WestCore.Api.Swagger.SwaggerDefaultValues.Apply(Operation operation, OperationFilterContext context) in C:\Users\can.pahali\source\WestCoreApiSS\Main\WestCore.Api\Swagger\SwaggerDefaultValues.cs:line 38
       at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.CreateOperation(ApiDescription apiDescription, ISchemaRegistry schemaRegistry)
       at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.CreatePathItem(IEnumerable`1 apiDescriptions, ISchemaRegistry schemaRegistry)
       at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.<>c__DisplayClass6_0.<CreatePathItems>b__2(IGrouping`2 group)
       at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
       at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
       at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.CreatePathItems(IEnumerable`1 apiDescriptions, ISchemaRegistry schemaRegistry)
       at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GetSwagger(String documentName, String host, String basePath, String[] schemes)
       at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)

ОБНОВЛЕНИЕ: Я также добавил скриншот для объекта context.ApiDescription.ParameterDescription.

context.ApiDescription.ParameterDescriptions view

See throwing exception

...