2

Castle Windsor の Fluent 登録を始めたばかりで、登録時に XML 構成ファイルのプロパティ セクションで定義したプロパティを参照する方法がわかりません。したがって、コンポーネントを登録するためのこのコードがあります。

RegisterComponent(componentId, Component.For<ConnectionConfig>()
            .ImplementedBy(typeof(ConnectionConfig))
            .Named(componentId)
            .LifeStyle.Singleton
            .Parameters(
                Parameter.ForKey("ConnectionId").Eq(connectionId),
                Parameter.ForKey("CommandTimeoutSeconds").Eq("#{ConnectionInfo.DefaultTimeout}")));

#{ConnectionInfo.DefaultTimeout} は、Fluent 登録の前にコンテナーにロードされる XML 構成で定義したプロパティですが、これは機能しません。このコードでは、Eq() に渡されるパラメーターはリテラルとして扱われます。 (これは他のコンポーネントでも機能しますが、つまり ${My.Component} は機能します)

新しい Fluent API を介してコンポーネントを登録する際に、構成ファイルからプロパティを参照する方法はありますか?

ありがとう

4

1 に答える 1

1

Windsor (3.x) の最近のバージョンには、これに対するサポートが組み込まれています。

Component.For<Foo>().DependsOn(Dependency.OnAppConfigValue("someValue"))
于 2012-09-03T21:47:15.527 に答える