在.NET Core的控制台应用程序中使用依赖注入,数据层很少

时间:2019-03-19 19:10:20

标签: c# dependency-injection .net-core

我正在尝试学习.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>();
    }
}

0 个答案:

没有答案