Используйте user.config вместо app.config - PullRequest
2 голосов
/ 08 марта 2011

Может ли кто-нибудь дать мне простой пример того, как использовать пользовательские настройки вместо настроек приложения? Мне нужен раздел Microsoft Unity для конкретного пользователя, но конфигурация не будет создана для пользователя при запуске приложения. Кроме того, я не могу использовать графический интерфейс Visual Studio для создания этих настроек. Мне также нужно изменить некоторые сопоставления во время выполнения.

Это то, что мне нужно в User-Config (который должен быть помещен в appdata пользователя)

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <section name="MyUnityContainer" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
      </configSections>
      <connectionStrings>
        <add name="MyProgram.Properties.Settings.MyConnectionString" connectionString="aConnectionString" />
      </connectionStrings>
      <MyUnityContainer>
        <typeAliases>
          <!-- type aliases -->
        </typeAliases>
        <containers>
          <container>
            <types>
              <!-- types -->
            </types>
            <extensions>
              <add type="Microsoft.Practices.Unity.InterceptionExtension.Interception, Microsoft.Practices.Unity.Interception" />
            </extensions>
            <extensionConfig>
              <add name="interception" type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationElement, Microsoft.Practices.Unity.Interception.Configuration"></add>
            </extensionConfig>
          </container>
        </containers>
      </MyUnityContainer>
   </configuration>

Мне нужно загрузить это при запуске приложения, но файл конфигурации для пользователя не будет создан! Как я могу заставить мою программу автоматически создавать пользовательскую конфигурацию при запуске, если она еще не существует?

Ответы [ 3 ]

2 голосов
/ 08 марта 2011

App.config хранится в корне приложения, а user.config - в профиле пользователя.User.config переопределяет настройки App.config

0 голосов
/ 20 апреля 2011

Я решил эту проблему, скопировав всю конфигурацию в данные приложения и загрузив ее оттуда через сопоставление путей.Это работает.

ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
configFile.ExeConfigFilename = exeFilePath; //somewhere in appdata in my case
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFile,ConfigurationUserLevel.None);
0 голосов
/ 08 марта 2011

Я думал, что переопределения user.config были доступны только для раздела конфигурации appSetting.

...