c# - 这个类定义有什么问题?(相关:SwaggerDefaultValues.cs)
问题描述
我创建了如下所示的类。我的项目中有类似的类,除了这个之外,它们都不会导致错误。我在我的类中找不到任何问题,但它会导致异常,在我的描述变量中,ModelMetadata属性为 null,这会导致错误。
这就是在我的 SwaggerDefaultValues.cs 中定义 描述变量的方式
var description = context.ApiDescription.ParameterDescriptions.First(p => p.Name == parameter.Name);
它在这里抛出异常,ModelMetadata 为 null,这导致 System.NullReferenceException:
parameter.Description = description.ModelMetadata.Description;
(详情请看截图……)
当我跟踪我的代码时,这个类定义会导致问题,
CardPlusCNumberUpdateQueryParameter 类:
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; }
}
}
堆栈跟踪:
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.ParameterDescriptions 对象添加了屏幕截图。
解决方案
推荐阅读
- jmeter - JMeter: Is it possible to add HTTP Request sampler during run?
- azure-devops - Azure DevOps 代理无法启动并显示:错误 1 功能不正确 - 服务无法启动
- python - Python Kivy 实时图表
- angular - 为不可见控件验证 Angular Reactive 表单
- java - 无法解析符号“黄瓜”
- javascript - NodeJS函数的不同路径
- sql - 如何从 Table2 中减去 Table1 的值?
- c# - 如何对列表进行排序
> 定制订单? - c - 试图从 linux 内核中理解一段内联 arm 程序集
- java - 从 Arrays.asList 转换为 Array