启动时有效的配置签名是什么?

Joe*_*aly 3 asp.net-core asp.net-core-2.0

如何ConfigureStartup课堂上确定有效参数?有谁知道可接受参数的文档在哪里?

例如,以下两个都是有效的:

public void Configure(IApplicationBuilder app, ILoggerFactory loggerfactory)
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
Run Code Online (Sandbox Code Playgroud)

pok*_*oke 6

启动方法ConfigureServicesConfigure被称为公约和传递的参数在运行时确定,所以没有固定的实现(除非明确实施签名IStartup).

ConfigureServices方法只允许一个参数:IServiceCollection.该方法可以具有该参数或者根本不具有该参数.所有其他签名将导致InvalidOperationException应用程序启动时.

Configure方法更灵活.除了IApplicationBuilder设置应用程序中间件管道所需的实际内容之外,您还可以添加所需的任何参数.然后将在运行时评估参数并从依赖注入中解析.

因此,您可以传递在服务集合中注册的任何依赖项,因此可以使用依赖项注入来解决.

这也在应用程序启动文档中记录:

附加服务,例如IHostingEnvironment,ILoggerFactory也可以在方法签名中指定,在这种情况下,如果可用,将注入这些服务.