0

Ich versuche, Windsor 3.0 zu verbinden, um Verbindungszeichenfolgen aus meiner web.config-Datei in meine Repository-Klassen zu injizieren.Gibt es eine Kurzschrift-Syntax für die Verwendung von Verbindungszeichenfolgen aus der Konfigurationsdatei in Castle Windsor 3.0?

Im Moment habe ich diese Syntax:

container.Register(
    Component 
    .For<IFooRepository>().ImplementedBy(SqlFooRepository) 
    .DependsOn(
     Property 
     .ForKey("sqlConnectionString") 
     .Eq(ConfigurationManager.ConnectionStrings["foo"].ConnectionString) 
    ) 
) 
) 

Da dies ein ziemlich häufiger Anwendungsfall sein muss, gibt es einige syntaktischen Kurz in Windsor kann ich den expliziten Aufruf ConfigurationManager.ConnectionStrings umgehen?

Antwort

4

Gibt es nicht. IMHO ist es nicht wert, es zu Windsor hinzuzufügen. Sie können ganz einfach, eine solche Stenografie mit einer Erweiterungsmethode schreiben:

public static class PropertyKeyExtensions { 
    public static Property UsingConnectionString(this PropertyKey p, string name) { 
     return p.Eq(ConfigurationManager.ConnectionStrings[name].ConnectionString); 
    } 
} 
... 

container.Register(
    Component 
    .For<IFooRepository>().ImplementedBy(SqlFooRepository) 
    .DependsOn(
     Property 
     .ForKey("sqlConnectionString") 
     .UsingConnectionString("foo")) 
    ) 
) 
) 
+0

einig, dass es zu eng ist, zu selten und zu einfach selbst zu tun, um es API –

+1

Gute Antwort, schöne Erklärung und eine sehr saubere Alternative Teil von Windsor zu machen Lösung. Danke, Windsor-Gurus ... ihr Jungs rockt :) –