Я создал класс, как показано ниже.У меня есть похожие классы в моем проекте, ни один из них не вызывает ошибки, кроме этого.Я не могу найти никаких проблем в своем классе, но это вызывает исключение. В моей переменной 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.