我是MVC和依赖注入的新手,请帮助我理解它们应该如何工作。我使用Ninject。以下是我的代码:
在Global.asax文件中:
private void RegisterDependencyResolver()
{
var kernel = new StandardKernel();
kernel.Bind<IDbAccessLayer>().To<DAL>();
// DAL - is a Data Access Layer that comes from separated class library
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
}
protected void Application_Start()
{
RegisterDependencyResolver();
}
IDbAccessLayer的实现非常简单:
public interface IDbAccessLayer
{
DataContext Data { get; }
IEnumerable<User> GetUsers();
}
现在我需要在控制器中创建一个构造函数,该函数需要获取IDbAccessLayer参数,并且能够正常工作。
但是我不知道如何将连接字符串传递给DAL。如果我尝试用接受参数的内容替换DAL的构造函数,它无法工作。会抛出异常信息未为此对象定义无参构造函数