且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-02-15 19:52:12

安装 Ninject.Web 来自软件包管理器控制台或NuGet。



版本是3.2.1









它将安装以下4个包 -





示例服务类别



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

public class UserService:IUserService
{
public List< string> GetUsers()
{
返回新列表< string> {john,eric};
}
}

然后添加绑定到〜 /App_Start/NinjectWebCommon.cs





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




I have a fair idea of using the Repository Pattern and have been attempting to "upgrade" our current way of creating ASP .Net websites. So i do the following

  1. Create a solution with a class project called DataAccessLayer and another class project called BusinessLogicLayer. Finally a 3rd project which is my ASP .Net website (a normal site).
  2. I add a dbml file to the DAL and drag a table, then in my BLL i add an interface and a class which implements this interface:

My interface

namespace BLL.Interfaces
{
    interface IUser
    {
        List<User> GetAllUsers();
    }
}

In my class

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

I know the code is not fully completed, but there for illustrative purposes.

So i right click the BLL project > Manage NuGet Packages > Searched for Ninject and found a few. I was overwhelmed with the number of entries returned after after further research i am lost in how to add Ninject to a normal ASP .Net website? Specifically which addin i require? As there are many MVC and reading further i think im a little confused.

I was trying to add it to the BLL project as thats where i THINK it should go so i can register my services in there.

Could anyone guide me in what i need to so in order to use Ninject entries but im not using MVC?

Install Ninject.Web either from "Package Manager Console" or NuGet.

Version is 3.2.1 as of this writing.

OR

It will install the following 4 packages -

Sample Service Class

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

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

Then add binding to ~/App_Start/NinjectWebCommon.cs.

In code behind page, property inject using [Inject] attribute.