NET Core2.0 三层架构,依赖注入DAL,BLL

  NET Core搭建三层架构,每层之间使用依赖注入获取实例

NET Core 三层架构,依赖注入_晓剑-CSDN博客

     项目结构如下

 常用的三层,Web-BLL-DLL

       BLL与DAL层分为Interface里边是提供接口,Implments提供实现类,DIRegister提供依赖注入的映射关系

    一:新建好三层添加好每层之间的依赖

     项目之间的依赖还是像以前一样,右键添加引用即可

     vs2017添加引用的是可能会报错:找不到 Microsoft.VisualStudio.Shell.Interop.IVsReferenceManager 服务的实例

     解决方法:http://www.tnblog.net/aojiancc2/article/details/262

        DeptMangerBLL.cs代码:
                

                    里边通过构造函数注入调用DAL层的方法

                

 public class DeptMangerBLL: IDeptMangerBLL
    {
        private IDeptMangerDAL _idl;
 
        //构造函数注入
        public DeptMangerBLL(IDeptMangerDAL idl)
        {
            _idl = idl;
        }
 
        public string GetDName()
        {
            string dname = _idl.GetDName();
 
            return dname;
        }
    }

     二:每层之间配置好依赖注入的映射关系

  BLL层                         

//BLL层的依赖注入
    public class BLLDIRegister
    {
        public void DIRegister_DAL(IServiceCollection services)
        {
            //配置一个依赖注入映射关系
            services.AddTransient(typeof(IDeptMangerBLL), typeof(DeptMangerBLL));
 
            //注册DAL层的依赖注入
            DALDIRegister sdr = new DALDIRegister();
            sdr.DIRegister_DAL(services);
        }
    }


DAL层         

 //DAL层的依赖注入
    public class DALDIRegister
    {
        public void DIRegister_DAL(IServiceCollection services)
        {
            services.AddTransient(typeof(IDeptMangerDAL), typeof(DeptMangerDAL));
        }
    }
 注意在.NET Core类库中没有引用依赖注入的类库:

Microsoft.Extensions.DependencyInjection  根本就获取不到IServiceCollection

 所以需要添加Microsoft.Extensions.DependencyInjection的引用,可以右键管理Nuget程序包然后搜索,  添加依赖

也可以在.csproj中配置依赖Nuget会自动下载,配置如下:

 <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="1.1.1" />
  </ItemGroup>
  三:在Startup.cs的ConfigureServices中添加各层的依赖注入配置

public void ConfigureServices(IServiceCollection services)
        {
 
            //注册BLL层的依赖注入配置
            BLLDIRegister sdr = new BLLDIRegister();
            sdr.DIRegister_DAL(services);
 
            services.AddMvc();
        }
 

配置好后controller中就可以很方便的使用中BLL的类了       

 public class HomeController : Controller
    {
       
        private IDeptMangerBLL _id;

        //构造函数注入
        public HomeController(IDeptMangerBLL id)
        {
            _id = id;
        }
        public IActionResult Index()
        {
            //调用接口中的方法
            string dname = _id.GetDName();       
            return View();
        }
 
    }
原文链接:https://blog.csdn.net/aojiancc2/article/details/75051026

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值