我正在尝试学习.net核心,但是DI遇到了问题。到目前为止,我使用Ninject进行依赖项注入。
在我的旧项目中,我使用Ninject绑定表示层中的接口并从业务层加载依赖项。
它是旧应用程序的构造函数Program类和Main方法。
static void Main(string[] args)
{
IKernel kernel = new StandardKernel(new CliModule());
var run = kernel.Get<Program>();
run.SetCommandMenu();
do
{
run.ProgramLoop();
} while (true);
}
private void ProgramLoop()
{
_menu.PrintAllCommands();
_menu.Execute(Console.ReadLine());
}
public Program(ISauceService sauceService, IIngredientService ingredientService, IPizzaService pizzaService, IOrderService orderService, IClientService clientService,IMenu menu)
{
AutoMapperModel.CreateMap();
_sauceService = sauceService;
_pizzaService = pizzaService;
_orderService = orderService;
_clientService = clientService;
_menu = menu;
_ingredientService = ingredientService;
}
这是我的模块
internal class CliModule : NinjectModule
{
public override void Load()
{
Kernel.Bind<IMenu>().To<Menu>();
Kernel.Load(new BusinnessLogicModule());
}
}
如何在控制台应用程序的图层项目中使用依赖项注入?到目前为止,我已经创建了CliContainer,但是我不知道如何将该容器实现为Main方法,以及如何加载BusinnessContainer(来自业务层的DI)
public class CliContainer
{
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IMenu, Menu>();
}
}