1.获取Ninject
使用Visual Studio 的Nugget获取Ninject
2.创建Message类,以及实现这个类的接口IMessage
Message类:
public class Message : IMessage
{
public string GetMessage()
{
return "This message was provided by Ninject";
}
}
IMessage接口:
public interface IMessage
{
string GetMessage();
}
3.在App_Start文件夹里创建一个NinjectDependencyResolver类,实现MVC中提供的注入接口INinjectDependencyResolver
public class NinjectDependencyResolver : System.Web.Mvc.IDependencyResolver
{
private Ninject.IKernel kernel;
public NinjectDependencyResolver()
{
this.kernel = new Ninject.StandardKernel();
this.AddBindings();
}
private void AddBindings()
{
//绑定类和接口
this.kernel.Bind<IMessage>().To<Message>();
}
public object GetService(Type serviceType)
{
return this.kernel.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return this.kernel.GetAll(serviceType);
}
}
4.在Global.asax注册这个容器
System.Web.Mvc.DependencyResolver.SetResolver(new MVC5Ninject.App_Start.NinjectDependencyResolver());
5.在Controller中使用属性注入
[Ninject.Inject]
public IMessage MessageProvider { set; get; }
public ActionResult Index()
{
ViewBag.Message = MessageProvider.GetMessage();//调用Message类中的方法
return View();
}
6.显示效果
参考文献:http://www.cnblogs.com/haogj/archive/2013/05/01/3053171.html
源代码上传:http://download.csdn.net/detail/esunshine1985/8268539