我正在创建一个新的ASP.NET Core 8 Web API.在我以前使用.NET 6或.NET 7的项目中,我可以使用:
services.AddApiVersioning(options =>
{
options.DefaultApiVersion = new ApiVersion(1, 0);
options.AssumeDefaultVersionWhenUnspecified = true;
options.ReportApiVersions = true;
});
services.AddVersionedApiExplorer(options =>
{
options.GroupNameFormat = "'v'VVV";
options.SubstituteApiVersionInUrl = true;
});
现在,包Microsoft.AspNetCore.Mvc.ApiExplorer
被弃用了,我用新的Asp.Versioning.Mvc.ApiExplorer
替换了它,但AddVersionedApiExplorer
没有扩展.
在Swagger的配置中,我有以下代码:
public class ConfigureSwaggerOptions : IConfigureNamedOptions<SwaggerGenOptions>
{
private readonly IApiVersionDescriptionProvider _provider;
public ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider)
{
_provider = provider;
}
public void Configure(SwaggerGenOptions options)
{
foreach (var description in _provider.ApiVersionDescriptions)
{
options.SwaggerDoc(
description.GroupName,
CreateVersionInfo(description));
}
}
public void Configure(string name, SwaggerGenOptions options)
{
Configure(options);
}
private static OpenApiInfo CreateVersionInfo(
ApiVersionDescription description)
{
var info = new OpenApiInfo()
{
Title = "Test API",
Version = description.ApiVersion.ToString(),
Description = "This is a test API.",
};
if (description.IsDeprecated)
{
info.Description += " This API version has been deprecated.";
}
return info;
}
}
当我运行应用程序时,我得到这个错误
try 激活‘Asp.Versioning.ApiExplorer.IApiVersionDescriptionProvider’时无法解析类型‘Middletier.Api.Extensions.Configuration.ConfigureSwaggerOptions’.的服务
我怎么才能修好它呢?