So registrieren Sie eine benannte Instanz mit Einfach Injektor

Entwickle ich eine WinForm-Anwendung und ich bin mit Repository-Muster , ich bin mit Servicestack OrmLite für den Datenzugriff und die Einfache Injektor für das IoC.

In meinem Programm.cs ich habe 2 register 2 verschiedene OrmLiteConnectionFactory aber derzeit bin ich nicht in der Lage, da kann ich nicht registrieren, namens... mit FunQ ich kann dies mit

container.Register<IDbConnectionFactory>("db1", _ => new OrmLiteConnectionFactory(
    ConfigurationManager.ConnectionStrings["db1"].ConnectionString, 
    SqlServerDialect.Provider));
container.Register<IDbConnectionFactory>("db2", _ => new OrmLiteConnectionFactory(
    ConfigurationManager.ConnectionStrings["db2"].ConnectionString, 
    SqlServerDialect.Provider));

hier ist mein Programm.cs Bootstrap-Methode

private static void Bootstrap()
{
    //Create the container as usual.
    Container = new Container();

    string conn1 = ConfigurationManager.ConnectionStrings["dbconn1"].ConnectionString;
    string conn2 = ConfigurationManager.ConnectionStrings["dbconn2"].ConnectionString;

    OrmLiteConnectionFactory connectionFactory = new OrmLiteConnectionFactory(conn1,
        ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider.Instance); 
    Container.RegisterSingle<OrmLiteConnectionFactory>(connectionFactory1);

    OrmLiteConnectionFactory connectionFactory2 = new OrmLiteConnectionFactory(conn2,
        ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider.Instance); 

    //how do I register this one without a name?
    Container.RegisterSingle<OrmLiteConnectionFactory>(connectionFactory2);

    Container.Register<MainForm>();
}

Vielen Dank im Voraus

  • Wie ist die Anwendung mit diesen OrmLiteConnectionFactory Instanzen? Wie sollte die Applikation verschiedene zwischen den beiden? Wer sind Sie beabsichtigen, eine oder die andere? Diese Fabriken Punkt, an der Datenbanken mit dem gleichen schema?
  • ja die OrmLiteConnectionFactory dienen in verschiedenen repositories... also ich erwarte auf meine Repo1 zu beheben connectionFactory und auf einem anderen Repo2 zu beheben connectionFactory-2
  • Diese repositories Verbindung zu Datenbanken herstellen, haben das gleiche schema, oder sind diese Schemata unterscheiden?
  • ja ,ich muss auf verschiedene Datenbanken thats, warum ich mich registrieren 2 verschiedene Instanz einer OrmLiteConnectionFactory
InformationsquelleAutor advapi | 2014-12-19
Schreibe einen Kommentar