如何在ASP.NET WebForm中使用Ninject注入依赖项?

Com*_*ter 3 asp.net dependency-injection ninject repository-pattern

我对使用存储库模式有一个很好的想法,并一直试图"升级"我们目前创建ASP .Net网站的方式.所以我做了以下几点

  1. 使用名为DataAccessLayer的类项目和另一个名为BusinessLogicLayer的类项目创建解决方案.最后是第三个项目,这是我的ASP .Net网站(一个普通网站).
  2. 我将一个dbml文件添加到DAL并拖动一个表,然后在我的BLL中添加一个接口和一个实现此接口的类:

我的界面

namespace BLL.Interfaces
{
    interface IUser
    {
        List<User> GetAllUsers();
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的班上

namespace BLL.Services
{
   public class UserService : BLL.Interfaces.IUser
    {
        public List<User> GetUsers()
        {
            throw new NotImplementedException();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道代码没有完全完成,但出于说明的目的.

所以我右键单击BLL项目>管理NuGet包>搜索Ninject并找到一些.经过进一步的研究后,我失去了如何将Ninject添加到普通的ASP .Net网站,我对这些条目的数量感到不知所措?具体哪个添加我需要?由于有很多MVC和阅读进一步我认为我有点困惑.

我试图将它添加到BLL项目,因为我认为它应该去,所以我可以在那里注册我的服务.

任何人都可以指导我,我需要这样才能使用Ninject条目,但我不使用MVC?

Win*_*Win 8

从"程序包管理器控制台"或NuGet 安装Ninject.Web.

截至本文撰写时,版本为3.2.1.

在此输入图像描述

要么

在此输入图像描述

它将安装以下4个包 -

在此输入图像描述

样本服务类

public interface IUserService
{
    List<string> GetUsers();
}

public class UserService : IUserService
{
    public List<string> GetUsers()
    {
        return new List<string> {"john", "eric"};
    }
}
Run Code Online (Sandbox Code Playgroud)

然后添加绑定~/App_Start/NinjectWebCommon.cs.

在此输入图像描述

在页面后面的代码中,属性使用[Inject]属性注入.

在此输入图像描述