В приложении использую конфиг-файл, в котором пользователи пишут значения руками. Естественно, ляпают. Как правило, лишние символы в конце и в начале. Но соответствующие свойства класса Settings оказываются readonly (настройки для всего приложения). Да к тому же тип у настроек - StringCollection.
В итоге пришлось соорудить функцию
public delegate bool goodString(string o);public delegate string clearString(string o);
public StringCollection CloneCollection(StringCollection src, goodString goodFunc, clearString clearFunc) {
StringCollection rv = new StringCollection();
foreach (string t in src) {
string tc = clearFunc == null ? t : clearFunc(t);
if (goodFunc == null || goodFunc(tc))
rv.Add(tc);
}
return rv;
}
Вызов такой:
setsSearchSites =
CommonTools.CloneCollection(sets.SearcSites,delegate(string s) { return !string.IsNullOrEmpty(s); },
delegate(string s) { return s.Trim().TrimEnd("/".ToCharArray()); });
А в приложении пользуюсь уже исправленной копией параметров, с вычищенными пробелами и слешами на концах.
Комментариев нет:
Отправить комментарий