Ninject在.NET WebForm和MVC中的使用
1.建立项目:Models/BLL/DAL/IBLL/IDAL/WebSite
2.WebSite要引用其余几个项目
3.NuGet中搜索Ninject,安装 Ninject、Ninject.Web.Common、Ninject.Web 这三个包到WebSite上面。
4.打开WebSite 的App_Start文件夹,会新出现一个 NinjectWebCommon 类,其中有一个函数:private static void RegisterServices(IKernel kernel){}
5.在这个 RegisterServices 函数中就可以注册类的映射了
代码:
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IBLL.IUserInfo>().To<BLL.UserInfo>();
kernel.Bind<IDAL.IUserInfo>().To<DAL.UserInfo>();
}
6.在WebForm中使用的代码:using Ninject;
public partial class _Default : Page
{
[Inject]
public IBLL.IUserInfo UserBLL { get; set; } protected void Page_Load(object sender, EventArgs e)
{
string name = UserBLL.GetEntity().NickName;
Response.Write(name);
}
}
7.在BLL和DAL中也要使用Ninject,需要引用相关DLL,这个DLL会自动在 解决方案的根目录下 的Ninject文件夹里。如果没有,就去WebSite的bin目录找。
添加引用后,使用代码:BLL和DAL的使用方法是一样的。
using System.Data;
using IBLL;
using Ninject;
using System.Collections.Generic;
using System; namespace BLL
{
/// <summary>
/// 用户表
/// </summary>
public class UserInfo : IUserInfo
{
[Inject]
public IDAL.IUserInfo UserInfoDAL { get; set; } /// <summary>
/// 得到一个实体
/// </summary>
/// <param name="_Id"></param>
/// <returns></returns>
public Models.UserInfo GetEntity(int ID)
{
return UserInfoDAL.GetEntity(ID);
} }
}
MVC中使用Ninject
引用好相关的dll
新建一个类(我放到网站根目录了)代码:
public class NinjectDependencyResolver : System.Web.Mvc.IDependencyResolver
{
private readonly IKernel kernel;
public NinjectDependencyResolver()
{
kernel = new StandardKernel();
AddBindings();
}
private void AddBindings()
{
#region 自定义 编写映射
kernel.Bind<IBLL.IBannerInfo>().To<BLL.BannerInfo>();
kernel.Bind<IDAL.IBannerInfo>().To<DAL.BannerInfo>();
#endregion
}
public object GetService(Type serviceType)
{
return kernel.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return kernel.GetAll(serviceType);
}
}
Global文件代码新增注册:
protected void Application_Start()
{
DependencyResolver.SetResolver(new NinjectDependencyResolver());//注册Ioc容器
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
使用方法跟之前一样。
Ninject在.NET WebForm和MVC中的使用的更多相关文章
- Jquery 上传插件 FineUploader 在 webform 和 mvc 中的使用;
多文件上传组件FineUploader使用心得 FineUploader 结合 一般处理程序 [上传示例] 参考:http://www.cnblogs.com/dudu/archive/2012/ ...
- Asp.net中WebForm 与 MVC的架构区别
ASP.NET Webform 后台代码(behind code) 这种behind code 模式有5个问题,我们用MVC的设计思想来分别解决这些问题 1.基于视图的方案来解决基于行为的需求 从上图 ...
- Ninject在mvc中的简单配置
前言 Ninject是一款开源的轻量级的依赖注入插件.从接触ioc以来,一直都是使用这个,感觉用起来还是不错的,配置起来也很方便简单.在mvc中更是基本傻瓜式的配置. 开发前的准备 新建一个mvc3项 ...
- ASP.NET Web API和ASP.NET Web MVC中使用Ninject
ASP.NET Web API和ASP.NET Web MVC中使用Ninject 先附上源码下载地址 一.准备工作 1.新建一个名为MvcDemo的空解决方案 2.新建一个名为MvcDemo.Web ...
- Ninject 在 Winform、 Asp.net MVC中连络EntityFramework的应用
Ninject 在 Winform. Asp.net MVC中连络EntityFramework的应用( 注入同一个DbContext的应用名人名言:科学是老老实实的东西,它要靠许许多多人民的劳动和智 ...
- ASP.NET MVC中使用Ninject
ASP.NET MVC中使用Ninject 在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事 ...
- 【ASP.NET MVC 学习笔记】- 06 在MVC中使用Ninject
本文参考:http://www.cnblogs.com/willick/p/3299077.html 1.在ASP.NET MVC中一个客户端请求是在特定的Controller的Action中处理的. ...
- MVC中使用Ninject依赖注入
在.NET MVC中使用Ninject注入,主要分为以下几步: 使用NuGet包添加Ninject引用,我添加的是目前最新版本3.34 在App_Start文件夹下,创建NinjectControll ...
- 在ASP.NET Web API和ASP.NET Web MVC中使用Ninject
先附上源码下载地址 一.准备工作 1.新建一个名为MvcDemo的空解决方案 2.新建一个名为MvcDemo.WebUI的空MVC应用程序 3.使用NuGet安装Ninject库 二.在ASP.N ...
随机推荐
- 最新ICE源码编译安装
发现ICE3.7版本在编译安装时比之前的版本省事了很多,少了很多杂七杂八的依赖库:估计是被grpc火热情景给逼的? Compiling [amd64-shared] src/Ice/Collocate ...
- I.MX6 linux kernel编译错误处理
/******************************************************************************** * I.MX6 linux kern ...
- 6-8 Percolate Up and Down(20 分)
Write the routines to do a "percolate up" and a "percolate down" in a binary min ...
- Spring获取properties中同一个key对应的多条value的方法
如下方式使用Spring EL @Value("#{'${my.list.of.strings}'.split(',')}") private List<String> ...
- C#典型案例及分析
1.简单工厂计算器
- [UOJ388]【UNR #3】配对树
uoj description 给你一棵\(n\)个节点的树以及一个长为\(m\)的序列,序列每个位置上的值\(\in[1,n]\),你需要求出把序列中所有长度为偶数的区间内所有数拿出来在树上以最小代 ...
- java编程排序之自定义类型的集合,按业务需求排序
自定义引用类型放入集合中,按实际业务需求进行排序的两种思路 第一种思路: (1)自定义实体类实现java.lang.Comparable接口,重写public int compareTo(Object ...
- C#模板引擎 DotLiquid
DotLiquid 是一个简单.快速和安全的模板引擎,移植自 Ruby 的 Liquid 标签. 示例模板: <p>{{ user.name }} has to do:</p> ...
- codevs 计算器的改良
#include<iostream> #include<cctype> #include<vector> #include<cstdio> using ...
- wkhtmltopdf是一个使用webkit网页渲染引擎开发的用来将 html转成 pdf的工具
wkhtmltopdf是一个使用webkit网页渲染引擎开发的用来将 html转成 pdf的工具,可以跟多种脚本语言进行集成来转换文档. 官网地址 http://wkhtmltopdf.org/ gi ...