Я перенес многослойный проект ASP.NET в ASP.NET Core.Я использовал Ninject для DI в моем старом проекте, и я мог назвать его следующим образом в моем BLL.
public void IamMethodInBll()
{
...
//i could call ninject like this.
var prodCalcManager = Const.NinjectKernel.Get<IProdCalcService>();
prodSurr.CalculatedPrice = prodCalcManager.GetMyMethod()
..
}
В настоящее время я, конечно, использую систему DI ASP Net Core.Но как я могу вызвать сервисный локатор на бизнес-уровне для ядра ASP.NET?Мне нужны ваши образцы и предложения.
В Startup.cs
services.AddScoped<IProdCalcService,ProdCalcManager>();
В BLL
public void IamMethodInBll()
{
...
//What's the proper way to call another service in BLL
//How can i get the service provider in BLL
var prodCalcManager = _serviceProvider.GetService<IProdCalcService>();
prodSurr.CalculatedPrice = prodCalcManager.GetMyMethod()
..
}