我在下面的数据访问层
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] 删除。
我来说两句