Ninject 简单应用

来源:互联网 发布:php pdo query exec 编辑:程序博客网 时间:2024/05/17 07:21

Ninject是一个快如闪电、超轻量级的基于.net平台的依赖注入框架。它能够帮助你把应用程序分离成一个个松耦合、高内聚的模块,然后用一种灵活的方式组装起来。通过使用Ninject配套你的软件架构,那么代码将会变得更加容易编写、重用性强、易于测试和修改。

但是Ninject貌似没有提供基于配置的接口,而且运行环境必须是 .net framework 4,不是Client,可以在项目属性中修改:


这么说估计谁都不明白,简单的说你可以把它当成你的工厂类来使用。

============实例=====================================================

定义两个接口:

public interface ILogger {     void Write(string message); }
public interface ITester 
{ 
    void Test(); 
}

实现这两个接口:

public class Logger : ILogger{     public void Write(string message){// do something}}public class Tester : ITester{ private ILogger _logger;public Tester(ILogger logger){_logger = logger;}        public void Test(){_logger.Write("Enter");// do something}}

现在如果是没有IoC容器的话,我们需要先实例化一个Logger对象,并将其传递给Tester对象,这样做就将Logger与Tester两个对象耦合了,使用IoC容器的话,我们可以这么做:

using(var ninjectKerenl = new StandardKernel()){ninjectKerenl.Bind<ILogger>().To<Logger>();ninjectKerenl.Bind<ITester>().To<Tester>();var tester = ninjectKerenl.Get<ITester>();}

Ninject自动将参数赋值给了ITester,这样就将两个类型解耦了。

以上只是基本使用方法,还有一些其他的例如:

Unbind方法可以解除一个绑定。

To<T>()方法后可以增加 Named方法来唯一标示改类型,

使用InSingletonScope()设置为单例模式等。



原创粉丝点击