.net core 依赖注入

.NET Core 开发中,三层架构是一种常见的设计模式。该模式将应用程序分为三个层次结构:表示层、业务逻辑层和数据访问层。每个层次结构都有自己的职责,并与其他层次结构松耦合。这种设计有利于代码的可维护性、可测试性和可扩展性。而依赖注入(Dependency Injection)则是 .NET Core 中使用三层架构时的重要技巧之一。下面,将根据实际生产中的应用经验,分享一些关于 .NET Core 三层架构依赖注入的心得技巧。

在三层架构中,表示层负责与用户交互,业务逻辑层负责处理用户请求,数据访问层负责处理数据的持久化操作。而依赖注入则是通过构造函数、属性或方法,将对象之间的依赖关系注入到类中。DI 使对象更松耦合、可维护性更高。

在三层架构中,表示层负责与用户交互,业务逻辑层负责处理用户请求,数据访问层负责处理数据的持久化操作。而依赖注入则是通过构造函数、属性或方法,将对象之间的依赖关系注入到类中。DI 使对象更松耦合、可维护性更高。

  1. 安装引用包。   点击依赖项右键,点击管理NuGet包下载以下图片的管理包,版本可以自己选(不要太高,也不要太低):

建立三个类库,在名为XXX.DataDepository的类库设为默认启动项目,最后点击工具,找到NuGet管理包中程序管理包控制台并点击,最后输入:

Scaffold-DbContext "Data Source=.;Initial Catalog=ALlibrary;User ID=sa;Password=123456" Microsoft.EntityFrameworkCore.SqlServe

(里面的数据库和数据库登录名要自己修改)

最后生成数据r

  1. 使用依赖注入容器

.NET Core中,我们可以使用 DI 容器来管理依赖项。DI 容器是一个管理依赖关系的对象。当我们需要一个对象时,容器会根据配置自动创建并返回该对象。.NET Core 提供了自带的 DI 容器,可以满足我们的大部分需求。比如在代码中构造函数注入:

public class MyService : IMyService

{

    private readonly IDatabaseAccess _databaseAccess;

    public MyService(IDatabaseAccess databaseAccess)

    {

        _databaseAccess = databaseAccess;

    }

}

在此代码中,MyService 类需要一个 IDatabaseAccess 接口的实例,DI 容器会自动创建并注入这个依赖项。

  1. 实现业务逻辑层和数据访问层

在三层架构中,业务逻辑层负责处理用户请求,而数据访问层负责将用户请求持久化到数据库。业务逻辑层和数据访问层是依赖的,但是在代码中我们要做到它们之间的代码解耦。我们需要在业务逻辑层中定义接口,然后在数据访问层中实现这些接口。

public interface IDatabaseAccess

{

    void Save(MyModel model);

}

public class DatabaseAccess : IDatabaseAccess

{

    public void Save(MyModel model)

    {

        // 数据库访问逻辑

    }

}

在数据访问层中实现 IDatabaseAccess 接口,由依赖注入容器将依赖项注入到业务逻辑层中使用。

  1. 避免跨层操作

在三层架构中,各个层次结构应该具有单一职责,每层次结构专注于其特定的任务。业务逻辑层和数据访问层之间的操作不应该跨层次结构。违反了这些规则会使代码更难维护,增加运行时错误的风险。

  1. 使用构造函数注入

在三层架构中,最常用的注入方式是构造函数注入。通过将依赖项定义为构造函数的参数来实现:

public class MyService : IMyService

{

    private readonly IDatabaseAccess _databaseAccess;

    public MyService(IDatabaseAccess databaseAccess)

    {

        _databaseAccess = databaseAccess;

    }

}

  1. 以接口为基础编程

依赖注入使用接口而不是具体实现。这使得我们可以更轻松地更改应用程序的

  1. 最后启动项目,https://localhost:44383/My/GetList查看数据

.NET Core 开发中,三层架构是一种常见的设计模式。该模式将应用程序分为三个层次结构:表示层、业务逻辑层和数据访问层。每个层次结构都有自己的职责,并与其他层次结构松耦合。这种设计有利于代码的可维护性、可测试性和可扩展性。而依赖注入(Dependency Injection)则是 .NET Core 中使用三层架构时的重要技巧之一。下面,将根据实际生产中的应用经验,分享一些关于 .NET Core 三层架构依赖注入的心得技巧。

在三层架构中,表示层负责与用户交互,业务逻辑层负责处理用户请求,数据访问层负责处理数据的持久化操作。而依赖注入则是通过构造函数、属性或方法,将对象之间的依赖关系注入到类中。DI 使对象更松耦合、可维护性更高。

在三层架构中,表示层负责与用户交互,业务逻辑层负责处理用户请求,数据访问层负责处理数据的持久化操作。而依赖注入则是通过构造函数、属性或方法,将对象之间的依赖关系注入到类中。DI 使对象更松耦合、可维护性更高。

  1. 安装引用包。   点击依赖项右键,点击管理NuGet包下载以下图片的管理包,版本可以自己选(不要太高,也不要太低):

建立三个类库,在名为XXX.DataDepository的类库设为默认启动项目,最后点击工具,找到NuGet管理包中程序管理包控制台并点击,最后输入:

Scaffold-DbContext "Data Source=.;Initial Catalog=ALlibrary;User ID=sa;Password=123456" Microsoft.EntityFrameworkCore.SqlServe

(里面的数据库和数据库登录名要自己修改)

最后生成数据r

  1. 使用依赖注入容器

.NET Core中,我们可以使用 DI 容器来管理依赖项。DI 容器是一个管理依赖关系的对象。当我们需要一个对象时,容器会根据配置自动创建并返回该对象。.NET Core 提供了自带的 DI 容器,可以满足我们的大部分需求。比如在代码中构造函数注入:

public class MyService : IMyService

{

    private readonly IDatabaseAccess _databaseAccess;

    public MyService(IDatabaseAccess databaseAccess)

    {

        _databaseAccess = databaseAccess;

    }

}

在此代码中,MyService 类需要一个 IDatabaseAccess 接口的实例,DI 容器会自动创建并注入这个依赖项。

  1. 实现业务逻辑层和数据访问层

在三层架构中,业务逻辑层负责处理用户请求,而数据访问层负责将用户请求持久化到数据库。业务逻辑层和数据访问层是依赖的,但是在代码中我们要做到它们之间的代码解耦。我们需要在业务逻辑层中定义接口,然后在数据访问层中实现这些接口。

public interface IDatabaseAccess

{

    void Save(MyModel model);

}

public class DatabaseAccess : IDatabaseAccess

{

    public void Save(MyModel model)

    {

        // 数据库访问逻辑

    }

}

在数据访问层中实现 IDatabaseAccess 接口,由依赖注入容器将依赖项注入到业务逻辑层中使用。

  1. 避免跨层操作

在三层架构中,各个层次结构应该具有单一职责,每层次结构专注于其特定的任务。业务逻辑层和数据访问层之间的操作不应该跨层次结构。违反了这些规则会使代码更难维护,增加运行时错误的风险。

  1. 使用构造函数注入

在三层架构中,最常用的注入方式是构造函数注入。通过将依赖项定义为构造函数的参数来实现:

public class MyService : IMyService

{

    private readonly IDatabaseAccess _databaseAccess;

    public MyService(IDatabaseAccess databaseAccess)

    {

        _databaseAccess = databaseAccess;

    }

}

  1. 以接口为基础编程

依赖注入使用接口而不是具体实现。这使得我们可以更轻松地更改应用程序的

  1. 最后启动项目,https://localhost:44383/My/GetList查看数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值