ich die folgende Klasse haben:Schloss Windsor Register-Klasse mit Konstruktorparameter
public class DatabaseFactory<C> : Disposable, IDatabaseFactory<C> where C : DbContext, BaseContext, new()
{
private C dataContext;
private string connectionString;
public DatabaseFactory(string connectionString)
{
this.connectionString = connectionString;
}
public C Get()
{
return dataContext ?? (dataContext = Activator.CreateInstance(typeof(C), new object[] {connectionString}) as C);
}
protected override void DisposeCore()
{
if (dataContext != null)
dataContext.Dispose();
}
}
Wenn ich versuche, die Web-api zu starten, erhalte ich folgende Fehlermeldung:
Can't create component 'MyApp.DAL.Implementations.DatabaseFactory'1' as it has dependencies to be satisfied. 'MyApp.DAL.Implementations.DatabaseFactory'1' is waiting for the following dependencies: - Parameter 'connectionString' which was not provided. Did you forget to set the dependency?
Wie kann ich richtig registrieren und wie gebe ich den Parameter zur Laufzeit weiter?
Connection ist ein Variable. Wie wird es an die dependencyinstaller-Klasse übergeben? –
@ Ivan-MarkDebono Kannst du es nicht aus einer Konfigurationsdatei lesen? Müssen Sie mehrere Verbindungszeichenfolgen haben? –
Die Verbindungszeichenfolgen werden aus einer separaten Datenbank abgerufen, und der Benutzer wählt eine davon beim Anmelden aus. Das EF-Modell ist immer dasselbe, dem Benutzer stehen jedoch verschiedene Datenbanken zur Auswahl. –