使用 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 包。
我有一个 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 包。