Хорошо, зависимость от ниндзя, вот вам ...
Я хочу изменить способ, которым 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 использовать конструктор по умолчанию.
Я, должно быть, упускаю что-то очевидное!