Configure
课程中Startup
的有效参数如何确定?有谁知道可接受参数的文档在哪里?
例如,以下两个都有效:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerfactory)
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
答案 0 :(得分:5)
启动方法ConfigureServices
和Configure
按约定调用,传递的参数在运行时确定,因此不需要实现 fixed 签名(除非明确实现{ {3}})。
ConfigureServices
方法只允许使用一个参数:IServiceCollection
。该方法可以具有该参数或者根本不具有该参数。所有其他签名将在应用程序启动时生成InvalidOperationException
。
Configure
方法更灵活。除了设置应用程序中间件管道所需的实际IApplicationBuilder
之外,您还可以添加任何参数。然后将在运行时评估参数,并从依赖注入中解析 。
因此,您可以传递在服务集合中注册的任何依赖项,因此可以使用依赖项注入来解析。
这也记录在IStartup
:
也可以在方法签名中指定其他服务,例如
IHostingEnvironment
和ILoggerFactory
,在这种情况下,如果可用,这些服务将为application startup documentation。