【发布时间】:2009-07-19 02:07:40
【问题描述】:
Ok Dependency Ninja,给你一个……
我想根据我从内核请求的类型更改 Ninject 构建依赖项的方式。
我有一个带有以下构造函数的 DbConnectionFactory 类:
public DbConnectionFactory()
: this(MyDatabase.ConnectionString)
{
}
public DbConnectionFactory(string connectionString)
: this(DbProviderFactories.GetFactory("System.Data.SqlClient"), connectionString)
{
}
对于“默认”绑定,我希望 Ninject 使用无参数构造函数:
this.Bind<IDbConnectionFactory>().To<DbConnectionFactory>();
我的代码中的某些类需要 Ninject 来提供 connectionString 参数。我尝试像这样设置绑定:
this.Bind<IDbConnectionFactory>().To<DbConnectionFactory>().Only(
When.Context.InstanceOf(typeof(IRepository))).WithArgument(
"connectionString", MyOtherDatabase.ConnectionString);
但是,我只让 Ninject 使用默认构造函数。
我一定遗漏了一些明显的东西!
【问题讨论】:
标签: .net dependency-injection ninject