zoukankan      html  css  js  c++  java
  • Ninject之旅之四:Ninject模块

    摘要

     随着应用程序的增长,注册的服务列表跟着变长,管理这个列表将变得困难。Ninject模块是一个好的将我们的类型绑定分离到不同的绑定组的方式,它很容易地将分组组织到不同的文件中。将一个类变成一个Ninject模块只需要将这个类继承INinjectModule接口。每次创建一个Module的时候都需要实现这个接口,需要实现三个方法和两个属性。创建一个抽象类实现这个接口,之后每次创建Ninject模块的时候都继承这个抽象类,这是一个好主意。好消息是Ninject已经有一个这样的抽象类,名称是NinjectModule。

    下面是一个NinjectModule例子:

    1     public class MailServiceModule : NinjectModule
    2     {
    3         public override void Load()
    4         {
    5             Bind<ILogger>().To<ConsoleLogger>().InSingletonScope();
    6             Bind<MailServerConfig>().ToSelf().InRequestScope();
    7         }
    8     }

    定义了模块之后,我们需要将他们加载到kernel,Ninject才能够正确使用他们得到正确的注册类型。在测试类中添加测试函数:

            [Test]
            public void NinjectModuleTest()
            {
                using (var kernel = new StandardKernel(new MailServiceModule()))
                {
                    var mailService = kernel.Get<MailService>();
                    mailService.SendMail("your email address", "test email", "it is a test Email");
                }
            }

    下面的代码将许多的模块加载到单个Ninject Kernel中:

    var kernel = new StandardKernel(newModule1(), newModule2(), … );

    我们也可以将一个应用程序中所有的模块同时加载到Ninject Kernel中:

    kernel.Load(AppDomain.CurrentDomain.GetAssemblies());

    这里,Ninject在所有的assembly中查找继承INinjectModule的公有类,加载他们的类型绑定。





  • 相关阅读:
    tomcat配置环境变量
    Java实现简单的正则表达式匹配
    vi编辑器用法
    MyEclipse中自定义maven命令(添加maven 命令)
    dos窗口编译*.java文件 解决 java “错误:编码GBK 的不可映射字符”
    如何循环枚举类型
    Java枚举的小用法
    Java读取maven目录下的*.properties配置文件
    用MyEclipse将Maven Dependencies中的jar包导出
    MD5加密与base64编码
  • 原文地址:https://www.cnblogs.com/uncle_danny/p/5910525.html
Copyright © 2011-2022 走看看