Ok Dependency Ninja's,这里有一个给你的……
我想根据我从内核请求的类型更改 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 使用默认构造函数。
我一定遗漏了一些明显的东西!