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 ...
随机推荐
- Oracle(一)安装
一.到官网或者哪里去下载Oracle,我下的是winX64的11g版本 官网:https://www.oracle.com/technetwork/database/enterprise-editio ...
- I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking
<!-- * Copyright (C) 2010-2013, Freescale Semiconductor, Inc. All Rights Reserved. * The CFG elem ...
- 一台 linux 主机装两个mysql
启动 3306 nohup /usr/local/mysql5.1.7/bin/mysqld_safe & 启动 3307/usr/local/mysql/bin/mysqld --defau ...
- SCSI学习笔记
1. sudo sg_inq --len=36 /dev/sda 使用INQUIRY来查询scsi设备信息
- nexus bower 集成使用
创建nexus bower proxy host 比较简单,如下图: 安装bower && bower-nexus resolver npm install -g bower-nexu ...
- Rails Cookie和session使用
Rails通过cookies方法来操作cookie.这和session的操作有点相似 class CommentsController < ApplicationController def n ...
- 时间记录 APP:爱今天脑图
时间记录 APP:爱今天脑图 爱今天 时间记录 以时间记录为主线 晨音 总结 目标 标签 统计 日统计 周统计 月统计 技能培养 一万小时定律 睡眠状态 番茄钟 时间间隔提醒 15 分钟 30 分钟 ...
- [您有新的未分配科技点]可,可,可持久化!?------0-1Trie和可持久化Trie普及版讲解
这一次,我们来了解普通Trie树的变种:0-1Trie以及在其基础上产生的可持久化Trie(其实,普通的Trie也可以可持久化,只是不太常见) 先简单介绍一下0-1Trie:一个0-1Trie节点只有 ...
- windows 内存分配回收检查工具
LeakDiag是微软一款检测memory leak的工具,使用比较简单 首先去下载一个ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20 ...
- Ubuntu下VIM使用指南
基本命令: Esc:VIM中的万能功能键之一,基本上任何时候按这个键,都可以返回VIM的普通状态. i:在普通状态下按i可以进入“插入”编辑状态,这个时候按方向键移动光标,在想要输入的地方输入字符,用 ...