0

ウィンザー3.0を接続してweb.configファイルからリポジトリクラスに接続文字列を注入しようとしています。現時点でキャッスルウィンザー3.0の設定ファイルから接続文字列を使用するための省略形の構文はありますか?

が、私はこの構文を持っています。これを考えると

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

はかなり一般的なユースケースでなければならない、私はConfigurationManager.ConnectionStringsに明示的な呼び出しを回避するために使用することができますウィンザーのいくつかの構文上の速記はありますか?

答えて

4

ありません。 IMHOそれをウィンザーに加える価値はありません。あなたは簡単に拡張メソッドで、このような速記を書き込むことができます。

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

はそれウィンザーAPI –

+1

良い答え、素敵な説明、および非常にクリーンな代替の一部にするために自分で行うにはあまりにも珍しいと単純すぎる、あまりにも狭いです同意します溶液。ありがとう、ウィンザーの達人...あなたたちはロック:) –

関連する問題