Я запущен. NET Приложение Core 2.2, и у меня есть немного кода, который я хочу запустить сразу после начальной настройки в Startup.cs. Класс опирается на зарегистрированный тип, и я не совсем понимаю, как я должен создать isntance с уже введенными зависимостями. Допустим, у меня есть следующий класс, который я хочу запустить сразу после завершения установки.
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.