Ninject是一个IOC容器,用来解决程序中组件的耦合问题,它的目的在于做到最少配置。简单来讲就是 为我们选择一个想要的类来处理事务。
百度百科的解释:一个快如闪电、超轻量级的基于.Net平台的依赖注入框架。把应用程序分离成一个个松耦合、高内聚的模块,然后用一种灵活的方式组装起来。
一、Console项目使用
参考:[ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject
NuGet引入:Ninject
/// <summary> /// 1、简单的情况,实现类 没有依赖其他类 /// </summary> public static void Simple() { //一般的使用情况 Business bus = new Business(new LinqValueCalculator()); decimal result = bus.CalculatStockValue(); Console.WriteLine(result); //使用Ninject。。LinqValueCalculator绑定接口 //1、创建一个Ninject内核对象 IKernel ninjectKernel = new StandardKernel(); //2、将想使用的类型和他的接口进行绑定,告诉Ninject,当接收到一个实现IValueCalculater的请求的时候, //创建并返回LinqValueCalculator这个类,上面的两个关键字Bind,To可以帮助我们理解他的意思。 ninjectKernel.Bind<IValueCalculater>().To<LinqValueCalculator>(); //3、用Ninject的Get方法去获取IValueCalculator接口的实现 //Ninject将自动为我们创建LinqValueCalculator类的实例,并返回该实例的引用。 IValueCalculater calcImpl = ninjectKernel.Get<IValueCalculater>(); //4、创建Business实例并注入依赖(calcImpl) Business business = new Business(calcImpl); Console.WriteLine(business.CalculatStockValue()); }