使用 ninject 在常规 CLASS LIBRARY 中注入构造函数

constructor injection in regular CLASS LIBRARY with ninject

我有一个 DotNet class 库项目(不是 MVC WebAPI 项目),我想通过 NInject 使用构造函数注入。我从 Nugget 安装了包(v3.2.0.0 运行时 v4.0.30319)并将每个接口绑定到其各自的实体 class。这些上下文指向 SQL 数据库中的 3 个模式。但是,这种依赖性解析从未发生过。如果上下文是用 new() 启动的,那么库就可以工作。感谢您的帮助。

  public class SomeRepositoryClass : ISomeInterfaceAsync
  {
    private IDBSchema1Context _schema1Ctx; //= new DBSchema1();

    private IDBSchema2Context _schema2Ctx; //= new DBSchema2();

    private IDBSchema3Context _schema3Ctx; //= new DBSchema3();

    private IModelFactory _appModelFactory; //= new ModelFactory();

   public SomeRepositoryClass (
     IDBSchema1Context DBSchema1, 
     IDBSchema2Context DBSchema2, 
     IDBSchema3Context DBSchema3,
     IModelFactory modelFactory)
    {
      _schema1Ctx = DBSchema1;
      _schema2Ctx = DBSchema2;
      _schema3Ctx = DBSchema3;
      _appModelFactory = modelFactory;
    }

  public class Bindings : NinjectModule
  {
    public override void Load()
    {
      Bind<IDBSchema1Context>().To<DBSchema1>();
      Bind<IDBSchema2Context>().To<DBSchema2>();
      Bind<IDBSchemaC3ontext>().To<DBSchema3>();
      Bind<IModelFactory>().To<ModelFactory>();
    }
  }

原来我连class库项目中的NInject都不需要,连构造函数注入都用接口了。调用 class 库的 WebAPI 需要来自 Nuget 的 NInject 和 Ninject.Web.WebApi 包。