App.config и корпоративная библиотека - PullRequest
0 голосов
/ 19 октября 2011

Я использую корпоративную библиотеку для регистрации. Итак, для хранения моих конфигураций я использую клиентский app.config. Требование изменено на «разделение конфигурации EL и конфигурации пользовательского интерфейса». Я сделал это с помощью enterpriseLibrary.ConfigurationSource. Разделите конфигурации на app.config (для пользовательского интерфейса) и EL.config (для EL).

Теперь я хочу скрыть ссылку на этот EL.config из app.cpnfig, чтобы само существование этой конфигурации EL> было скрыто от пользователя.

Код App.config:

 <enterpriseLibrary.ConfigurationSource selectedSource="EntLib Configuration Source">
<sources>
  <add name="EntLib Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    filePath="C:\My.CommonServices.Logging\My.CommonServices.Logging\EL.config" />
</sources>

1 Ответ

5 голосов
/ 19 октября 2011

Вы можете использовать FileConfigurationSource для программной загрузки внешнего файла конфигурации.

Во время загрузки или инициализации приложения вы можете загрузить внешний файл конфигурации:

FileConfigurationSource fcs = 
    new FileConfigurationSource(
        @"C:\My.CommonServices.Logging\My.CommonServices.Logging\EL.config"
    );

var builder = new ConfigurationSourceBuilder();
builder.UpdateConfigurationWithReplace(fcs);

EnterpriseLibraryContainer.Current = 
    EnterpriseLibraryContainer.CreateDefaultContainer(fcs);

Как только это будет сделано, вы сможете получить доступ к вашим любимым функциям:

LogWriter logWriter = EnterpriseLibraryContainer.Current.GetInstance<LogWriter>();
logWriter.Write("Test");

Единственный «трюк» - это обеспечение того, чтобы файл конфигурации всегда присутствовал там, где вы ожидаете (абсолютный или относительный).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...