как получить доступ к одноэлементной службе в program.cs, которая была определена в startup.cs

#c# #.net #.net-core

#c# #.net #.net-ядро

Вопрос:

Я определил одноэлементную службу в моем startup.cs

 ConfigureServices(){
   ...
   services.AddSingleton<IBenutzerLizenzDaten, BenutzerLizenzDaten>();
   ...
}
 

Теперь я хочу получить доступ к службе в моем program.cs. Как я могу это сделать?

Нравится:

 public static void Main(string[] args){
   ...
   var host = CreateHostBuilder(args).Build();

   var benutzerLizenzDaten = host.Services.GetRequiredService<BenutzerLizenzDaten>(); // <--  Exception occurred, no service registered.
   benutzerLizenzDaten.Init();

   host.Run();
 

Спасибо!

Комментарии:

1.Внедрение ссылочной зависимости в ASP.NET Основные услуги вызова из основной части

Ответ №1:

Вы должны позвонить host.Services.GetRequiredService<IBenutzerLizenzDaten>(); из-за вашей регистрации services.AddSingleton<IBenutzerLizenzDaten, BenutzerLizenzDaten>(); .