依赖注入中的接口角色

Iamaaarianme

我在下面的数据访问层

 public class UserDataAccess
{
    private IDbConnection db;
    public UserDataAccess(IConfiguration conf)
    {
        this.db = new SqlConnection(conf.GetConnectionString("DefaultConnection"));
    }
}

在我的控制器中

public class AccessController : Controller
{
    private readonly UserDataAccess userDb;

    public AccessController(UserDataAccess dba)
    {
        userDb = dba;
    }
}

这会生成运行时错误。但是,当我为数据访问层使用接口并将其用于控制​​器中的依赖项注入时,一切都会正常进行。我们总是应该使用接口进行依赖注入吗?错误是

 Unable to resolve service for type 'Repository.UserDataAccess' while attempting to activate 'Controllers.AccessController'.

并且Repository.UserDataAccess是数据访问层

莫霍

UserDataAccess在服务容器中注册该类:

public void ConfigureServices( IServiceCollection services )
{
    services.AddScoped<UserDataAccess>(); // this call depends on desired liftime/scope
    ...
}

但是,使用接口是一种更好的做法。

https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章