Лучший способ внедрения конфигурации приложения

Итак, я совершаю набег на этот фантастический сайт с вопросом о правильном способе внедрения настроек конфигурации в компоненты приложения. Итак, обзор такой: у меня есть приложение, написанное на C # .Net 3.5. Он состоит из 3-х сборок - ядра, данных и службы. Сборки данных и служб требуют настроек, извлеченных из app.config, что выполняется через файл настроек, например.

Код:

public static String RequestQueueConnectionString
{
    get { return ConnectionSettings.Default.RequestQueueConnectionString; }
}

Конфигурация:

<applicationSettings>
  <MyNamespace.Data.ConnectionSettings>
    <setting name="RequestQueueConnectionString" serializeAs="String">
    ...

Теперь все сборки настраиваются с использованием StructureMap для IoC - что, на мой взгляд, должно дать ответ на то, что я ищу, но я просто не могу его понять!

IoC:

public static void ConfigureStructureMap(IContainer container)
{
    container.Configure(x => ...
    ...

Я хочу иметь возможность внедрить класс конфигурации, уже заполненный в контейнер IoC, чтобы эти параметры использовались для этой сборки, а НЕ те, которые указаны в файле настроек / app.config. Так что, возможно:

public static void ConfigureStructureMap(IContainer container, MyConfigClass config)
{
    container.Configure(x => x.For<DataConfig>()
                              .Singleton()
                              .Use ???
    ...

Надеюсь, я предоставил здесь достаточно подробностей - простите новичка, если я этого не сделал, и, пожалуйста, дайте мне знать, что еще было бы полезно в ответ на этот вопрос!

10
задан Bertie 4 October 2011 в 14:08
поделиться