Я работаю над библиотекой, которая может использоваться в одном или нескольких приложениях времени выполнения.В этой библиотеке есть функция, которая ищет строку для набора «ключей».Если он найден, возврат должен вернуть значение этого ключа.Если не найдено, верните исходную строку.
protected string CorrectFloatingIndex(string indexDescription)
{
if (indexDescription== null)
{
return "";
}
foreach (var mapper in FloatingIndex.Mapping)
{
if (Regex.IsMatch(indexDescription, mapper.Item1,
RegexOptions.IgnoreCase))
{
return mapper.Item2;
}
}
return indexDescription;
}
В настоящее время я жестко кодирую FloatingIndex.Mapping
со списком кортежей.Если найден какой-либо .Item1
, верните связанный .Item2
.
public static class FloatingIndex
{
public static List<Tuple<string, string>> Mapping =
new List<Tuple<string, string>>()
{
new Tuple<string, string>("TIIE", "TIIE"),
new Tuple<string, string>("CAMARA PROMEDIO INDEX", "CAMAR"),
new Tuple<string, string>("LIBOR", "LIBOR")
};
}
. Это прекрасно работает;однако, когда новый пример пары ключ-значение найден и должен быть добавлен в список, это требует изменения библиотеки DLL, что затем требует нового выпуска приложения времени выполнения, использующего эту библиотеку DLL.Этот список будет формироваться с течением времени, когда будут найдены новые пары ключ-значение.
Имейте в виду, что в библиотеке DLL используется метод CorrectFloatingIndex
.Приложение во время выполнения не использует этот метод или таблицу сопоставления напрямую.
Есть ли способ получить справочный файл или файл конфигурации приложения, который находится в DLL (для целей тестирования и ответственности), который каскадно относится кприложение во время выполнения?Это позволило бы протестировать и обеспечить полную функциональность DLL, одновременно предоставляя приложению-исполнителю возможность предоставлять обновленные пары ключ-значение для этого файла, не требуя выпусков.