代码之家  ›  专栏  ›  技术社区  ›  Miyagi Coder

Ninject绑定

  •  2
  • Miyagi Coder  · 技术社区  · 15 年前

    如何将我的接口绑定到不同程序集中的具体类?

    我的解决方案中有以下项目:

    Foo.数据
    Foo.Domain

    在结构映射中,我将我的两个程序集名称添加到StructureMap.config文件中,然后使用PluginFamily和Pluggable属性将我的接口映射到我的具体类。

    如何用Ninject完成同样的事情?

    1 回复  |  直到 15 年前
        1
  •  6
  •   Peter Meyer    15 年前

    我在这里做几个假设。

    1. 在Foo.Domain项目中有一个名为IBar的接口,在Foo.Data项目中有一个名为BarClass的具体类。
    2. 实际上,您在Foo.Data项目中引用了Foo.Domain项目,因为BarClass实现了IBar。

    使用Ninject最简单的方法是在Foo中创建一个新类。从Ninject的StandardModule派生的数据:

    internal class BarModule : StandardModule {
      public override void Load() {
        Bind<IBar>()
          .To<BarClass>();
      }
    }
    

    var modules = new IModule[] {
                                  new BarModule()
                                };
    
    var kernel = new StandardKernel(modules);
    

    此时,当您执行以下操作时:

    var barObj = kernel.Get<IBar>()
    

    变量barObj引用了BarClass的一个实例。