Я работаю вместе с ядром .net и внедрением зависимостей.Но есть кое-что, в чем я не уверен в производительности.Обычно сервисы определяются в конструкторе, но мне не нужны некоторые сервисы внутри метода.Не приводит ли это к потере производительности?
Является ли это невыгодным использованием в следующей строке?
public ValuesController(ICompanyService companyService, IOnlineUserService onlineUserService, IXService xService, ..., ..., ..., ...,)
{
}
Не более ли выгодно использовать это в следующей строке?
public virtual IActionResult UseCompanyServiceMethod()
{
ICompanyService _companyService = CtorContainer.Provider.GetRequiredService<ICompanyService>();
/*
...
*/
}
public virtual IActionResult AnyMethod()
{
IOnlineUserService onlineUserService = CtorContainer.Provider.GetRequiredService<IOnlineUserService>();
IXService xService = CtorContainer.Provider.GetRequiredService<IXService>();
... = CtorContainer.Provider.GetRequiredService <...> ();
/*
...
*/
}
public virtual IActionResult Method()
{
... = CtorContainer.Provider.GetRequiredService <...> ();
... = CtorContainer.Provider.GetRequiredService <...> ();
... = CtorContainer.Provider.GetRequiredService <...> ();
... = CtorContainer.Provider.GetRequiredService <...> ();
/*
...
*/
}
CtorContainer.cs
public static class CtorContainer
{
public static IConfiguration Configuration { get; set; }
public static IMapper Mapper { get; set; }
public static IServiceProvider Provider { get; set; }
}
startup.cs
public void ConfigureServices(IServiceCollection services)
{
CtorContainer.Provider = services.BuildServiceProvider();
}