Làm cách nào để có thể chèn giá trị của mục nhập appSettings (từ app.config hoặc web.config) vào dịch vụ bằng cách sử dụng vùng chứa Windsor? Nếu tôi muốn tiêm giá trị của một tài sản Windsor vào một dịch vụ, tôi sẽ làm một cái gì đó như thế này:Tiêm cài đặt ứng dụng bằng cách sử dụng Windsor
<properties>
<importantIntegerProperty>666</importantIntegerProperty>
</properties>
<component
id="myComponent"
service="MyApp.IService, MyApp"
type="MyApp.Service, MyApp"
>
<parameters>
<importantInteger>#{importantIntegerProperty}</importantInteger>
</parameters>
</component>
Tuy nhiên, những gì tôi thực sự muốn làm là lấy giá trị đại diện bởi #{importantIntegerProperty}
từ một cài đặt ứng dụng biến mà có thể được định nghĩa như thế này:
<appSettings>
<add key="importantInteger" value="666"/>
</appSettings>
EDIT: Để làm rõ; Tôi nhận ra rằng điều này là không thể thực sự với Windsor và David Hayden article rằng sliderhouserules đề cập đến thực sự là về container IoC của chính mình (David Hayden), chứ không phải Windsor.
Tôi chắc chắn không phải là người đầu tiên gặp vấn đề này vì vậy điều tôi muốn biết là làm cách nào để người khác giải quyết vấn đề này?
Có một cách tiếp cận khác dựa trên thành phần DictionaryAdapter, được cung cấp OOTB trong Windsor 2.5 hoặc mới hơn http://codebetter.com/blogs/benhall/archive/2010/07/22/improving-testability-with-the-castle-dictionary- adapter.aspx –
Cảm ơn bạn đã liên kết, Krzysztof. Tôi thích cách tiếp cận đó quá. –