我需要为NSwag中使用的JsonSerializer设置CamelCase配置,在旧版本中我创建了JsonSerializerSettings的实例,设置属性ContractResolver并覆盖方法AddOpenApiDocument中的SerializerSettings,现在我找不到SerializerSettings
这是之前使用的代码:
private void AddSwaggerEndpoints(IServiceCollection services, UnoSwaggerEndpoint[] endpoints)
{
var nswagDefaultSerializerSettings = new JsonSerializerSettings()
{
ContractResolver = new CamelCasePropertyNamesContractResolver(),
};
foreach (var endpoint in endpoints.OrderBy(e => e.DocumentName))
{
services.AddOpenApiDocument(o =>
{
o.DocumentName = endpoint.DocumentName;
o.Title = endpoint.Title;
o.ApiGroupNames = endpoint.ApiGroupName;
o.SerializerSettings = nswagDefaultSerializerSettings;
o.SchemaSettings.SchemaNameGenerator = new NestedClassNameSchemaNameGenerator();
o.Version = endpoint.Version;
o.SchemaSettings.AllowReferencesWithProperties = true;
o.SchemaSettings.GenerateEnumMappingDescription = true;
o.DocumentProcessors.Add(new SignalRTypescriptDocumentProcessor(endpoint));
o.DocumentProcessors.Add(new SchemaSorterDocumentProcessor());
});
}
}
AspNetCoreOpenApiDocumentGeneratorSettings
现在没有 SerializerSettings
属性或任何替代品。请看这里,现在是如何实施的。
要在 NSwag 中使用驼峰式大小写处理 JSON 序列化, 您通常在 ASP.NET Core 的默认 MvcJsonOptions 或 JsonOptions 中配置序列化器,而不是直接在 NSwag 中配置。
builder.Services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
或
builder.Services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
});