Вероятно, это прибывает из VB6. Поскольку с оператор Option Base в VB6, можно изменить нижнюю границу массивов как это:
Option Base 1
Также в VB6, можно изменить нижнюю границу определенного массива как это:
Dim myArray(4 To 42) As String
Рассматривали ли вы возможность использования реестра 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);
Вы можете использовать настройки в общем файле - скорее всего, хранящемся в 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>
Для решения этой конкретной проблемы, если это .Net DLL, вы можете использовать GAC , это централизует вашу DLL. Все программы будут знать, где они могут получить доступ к этой DLL. И таким образом у вас может быть меньше рефакторинга .
Это только патч для только этой проблемы . Я бы не рекомендовал это для новых разработок.
Возможно это решение, которое совместно использует параметры конфигурации между приложением ASP.NET и консольным приложением , будет содержать полезную информацию.