Mit Autofac
registriere ich 2 Implementierungen mit einem Typ. Und müssen die Implementierungen bei Bedarf austauschen. Aber es dauert immer eine Implementierung.Autofac - Verwendung mehrerer Implementierungen
public class DataAccesss
{
public IDatabaseHelper { get; set; }
}
Autofac
builder.RegisterType<DatabaseHelper>()
.Named<IDatabaseHelper>("Sql")
.WithParameter(new TypedParameter(IDatabaseHelper), new DatabaseHelper(new SqlFactory))
.PropertiesAutowired();
builder.RegisterType<DatabaseHelper>()
.Named<IDatabaseHelper>("Oledb")
.WithParameter(new TypedParameter(IDatabaseHelper), new DatabaseHelper(new OleDbFactory))
.PropertiesAutowired();
Und in der Steuerung benötigen, so etwas wie diese
1st - need to access `IDatabaseHelper` with `OleDb`
2nd - need to access `IDatabaseHelper` with `Sql`
haben, aber mein Problem ist IDatabaseHelper
ist entweder null
oder es wird immer OleDb
und nicht Sql
nehmen.
Was meinst du mit * auf Anfrage *? unterschiedliche Implementierung für verschiedene Dienste? –
mit dem gleichen Dienst muss ich auf beide 'OleDbClient' und 'SqlClient' zugreifen –
Wenn Sie schreiben als, es wird immer OleDb, 1 Schnittstelle nur erhalten SqlFactory ODER OleDbFactory –