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

时间:2017-11-01 16:17:49

标签: asp.net-core asp.net-core-2.0

Configure课程中Startup的有效参数如何确定?有谁知道可接受参数的文档在哪里?

例如,以下两个都有效:

public void Configure(IApplicationBuilder app, ILoggerFactory loggerfactory)
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)

1 个答案:

答案 0 :(得分:5)

启动方法ConfigureServicesConfigure按约定调用,传递的参数在运行时确定,因此不需要实现 fixed 签名(除非明确实现{ {3}})。

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

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

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

这也记录在IStartup

  

也可以在方法签名中指定其他服务,例如IHostingEnvironmentILoggerFactory,在这种情况下,如果可用,这些服务将为application startup documentation