Mam następujące klasy:Zamek Windsor klasa rejestr z konstruktorem parametry
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();
}
}
Kiedy próbuję uruchomić api internetowej, pojawia się następujący błąd:
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?
jak mogę zarejestrować go poprawnie i jak przekazać parametr w czasie wykonywania?
connectionString jest zmienna. Jak jest przekazywana do klasy dependencyer? –
@ Ivan-MarkDebono Nie możesz przeczytać tego z pliku konfiguracyjnego? Czy potrzebujesz wielu ciągów połączeń? –
Ciągi połączeń są pobierane z oddzielnej bazy danych, a użytkownik wybiera jedną z nich podczas logowania. Model EF jest zawsze taki sam, ale użytkownik może wybierać spośród wielu różnych baz danych. –