Ok Abhängigkeit Ninjas, hier ist für Sie ...Ninject: Howto Setup Bindungen basierend auf Abhängigkeitskette
ich den Weg Ninject baut eine Abhängigkeit von der Art der Grundlage geändert werden soll ich vom Kernel anfordert.
Ich habe eine DbConnectionFactory Klasse mit den folgenden Konstruktoren:
public DbConnectionFactory()
: this(MyDatabase.ConnectionString)
{
}
public DbConnectionFactory(string connectionString)
: this(DbProviderFactories.GetFactory("System.Data.SqlClient"), connectionString)
{
}
Für die "default" Bindung, ich Ninject den parameterlosen Konstruktor verwenden möchten:
this.Bind<IDbConnectionFactory>().To<DbConnectionFactory>();
Bestimmte Klassen in meinem Code Notwendigkeit Ninject, um den ConnectionString-Parameter zu liefern. Ich habe versucht, die Bindung wie folgt einzurichten:
this.Bind<IDbConnectionFactory>().To<DbConnectionFactory>().Only(
When.Context.InstanceOf(typeof(IRepository))).WithArgument(
"connectionString", MyOtherDatabase.ConnectionString);
Allerdings bekomme ich nur Ninject den Standardkonstruktor zu verwenden.
Ich muss etwas offensichtlich fehlen!