【发布时间】:2020-04-26 22:25:24
【问题描述】:
我正在运行 .NET Core 2.2 应用程序,并且我想在 Startup.cs 中进行初始设置后立即运行一些代码。该类依赖于注册类型,我真的不明白我应该如何创建一个已经注入依赖项的实例。假设我有以下类,我想在设置完成后立即运行。
public class RunAfterStartup
{
private readonly IInjectedService _injectedService;
public RunAfterStartup(IInjectedService injectedService)
{
_injectedService = injectedService;
}
public void Foo()
{
_injectedService.Bar();
}
}
有没有办法可以在启动时运行RunAfterStartup().Foo()?
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton(typeof(IInjectedService), typeof(InjectedService));
...
}
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
// I assume this has to go here, but could be anywhere
var runAfterStartup = MagicallyGetInstance();
runAfterStartup.Foo();
}
我知道在 .NET Framework(不确定 Core)中,您可以使用 SimpleInjector 执行此操作,方法是执行 container.GetInstance<RunAfterStartup>().Foo() 之类的操作,但我不确定这在 .NET Core 中如何工作,我只想使用内置DI。
【问题讨论】:
标签: c# .net-core dependency-injection asp.net-core-2.2