services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); });为什么可以.AddSwaggerGen
时间: 2024-03-24 09:36:27 浏览: 140
RCN.API:在> ASP.NET CORE中进行REST API学习
在ASP.NET Core中,Services是一个IServiceCollection接口的实例,它是一个依赖注入容器,用于注册和管理应用程序中的服务和依赖项。
Services对象提供了一系列的方法来注册服务,例如AddTransient、AddScoped、AddSingleton等。这些方法都是IServiceCollection接口的扩展方法,它们都返回IServiceCollection对象,可以链式调用多个方法。
在ASP.NET Core中,Swagger服务是通过调用AddSwaggerGen方法来进行注册的。AddSwaggerGen方法是IServiceCollection接口的扩展方法,它的实现类似于下面的代码:
```
public static IServiceCollection AddSwaggerGen(this IServiceCollection services, Action<SwaggerGenOptions> setupAction = null)
{
var options = new SwaggerGenOptions();
setupAction?.Invoke(options);
services.AddSingleton(options);
services.AddTransient<ISwaggerProvider, SwaggerGenerator>();
return services;
}
```
从上面的代码可以看出,AddSwaggerGen方法接受一个Action<SwaggerGenOptions>类型的参数,用于配置Swagger服务。在方法内部,它会创建一个SwaggerGenOptions对象,并将其注册为Singleton服务,然后将SwaggerGenerator注册为Transient服务,最后将IServiceCollection对象返回,以便链式调用。
因此,我们可以通过调用services.AddSwaggerGen方法来注册Swagger服务,并通过传递一个Action<SwaggerGenOptions>类型的参数来配置Swagger服务的选项。
阅读全文