Централизованные настройки в C# для нескольких программ

Вероятно, это прибывает из VB6. Поскольку с оператор Option Base в VB6, можно изменить нижнюю границу массивов как это:

Option Base 1

Также в VB6, можно изменить нижнюю границу определенного массива как это:

Dim myArray(4 To 42) As String

5
задан MPelletier 26 November 2009 в 02:38
поделиться

4 ответа

Рассматривали ли вы возможность использования реестра Windows? Мы все ненавидим это, но, возможно, это лучший вариант в данном случае, поскольку он централизован, и вы можете легко обмениваться настройками между приложениями.

РЕДАКТИРОВАТЬ : Если вам не нравится реестр (и я не виню вам за это), вы можете создать XML или какой-либо другой файл конфигурации в каталоге в специальной папке Application Data. Насколько мне известно, в наши дни это делается именно так.

string appData = Environment.GetFolderPath(
    Environment.SpecialFolder.LocalApplicationData));
string folder = "MyApplicationName";
string fileName = "settings.xml";
string path = Path.Combine(Path.Combine(appData, folder), fileName);
7
ответ дан 13 December 2019 в 19:28
поделиться

Вы можете использовать настройки в общем файле - скорее всего, хранящемся в AppData в папке пользовательских настроек

Преимущество в том, что вам не нужно вообще изменять какой-либо код.

Приложение сохранит свои настройки в своем обычном файле конфигурации и будет обращаться к общему файлу для настроек dll:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings file="commondll.config">
    <add key="KeyToOverride" value="Original" />
    <add key="KeyToNotOverride" value="Standard" />
  </appSettings>
</configuration>

затем в общем файле commondll.config:

<appSettings>
  <add key="KeyToOverride" value="Overridden" />
  <add key="KeyToBeAdded" value="EntirelyNew" />
</appSettings>
2
ответ дан 13 December 2019 в 19:28
поделиться

Для решения этой конкретной проблемы, если это .Net DLL, вы можете использовать GAC , это централизует вашу DLL. Все программы будут знать, где они могут получить доступ к этой DLL. И таким образом у вас может быть меньше рефакторинга .

Это только патч для только этой проблемы . Я бы не рекомендовал это для новых разработок.

GAC в Википедии

2
ответ дан 13 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: