Asp.net核心 - 如何在configure方法中使用在configure服务中设置的服务?

Dav*_*man 9 c# asp.net-core

我有一个我写的服务,有助于配置.该服务在Startup类的ConfigureServices方法中设置为:

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.AddScoped<IMyService, MyService>();

    ...
}
Run Code Online (Sandbox Code Playgroud)

然后我需要在Startup类的Configure方法中获取IMyService的实例.我怎么做?

Dav*_*idG 14

由于您已经添加了服务AddScoped,所以您需要做的就是Configure使用正确的类型向方法添加另一个参数,依赖注入系统将为您处理:

public void Configure(IApplicationBuilder app, 
    IHostingEnvironment env, 
    ILoggerFactory loggerFactory, 
    IMyService myService)
{
    //Snip
}
Run Code Online (Sandbox Code Playgroud)

  • 我还发现可以使用“ var myservice = App.ApplicationServices.GetService &lt;IMyService&gt;();”实例化它。我认为您的答案更好。:) (4认同)