У меня есть программа с большим количеством строковых констант, используемых для разрешения определенных символов через регулярные выражения. Теперь у меня есть список символов, которые я хочу заблокировать везде, но мне не нужно возвращаться ко всем моим старым строковым константам и переписывать их. Вместо этого я хочу создать список запрещенных символов и редактировать этот список только в одном месте (на случай, если он изменится в будущем). Затем я провожу все строковые константы через пользовательское регулярное выражение.
У меня есть список запрещенных символов, определенный в web.config, например:
<add key="RestrChar" value="\,!,#,%,<,>,|,&,;"/>
Вызов пользовательского регулярного выражения, подобного этому:
[RestrictCharRegExpress(ConstantStringName, ErrorMessage = CustomErrMsg)]
public string StringName
Класс определяется следующим образом:
public class RestrictCharRegExpressAttribute : RegularExpressionAttribute
{
public RestrictCharRegExpressAttribute(string propRegex) : base(GetRegex(propRegex)){ }
private static string GetRegex(string propRegex)
{
string restrictedChars = ConfigureationManager.AppSettings.Get("RestrChar");
string[] thisCharArray = restrictedChars.Split(',');
string regexPrep = "";
foreach (string c in thisCharArray)
{
regexPrep = string.Format(@"""{0}""", c);
propRegex = Regex.Replace(propRegex, regexPrep, "");
}
return propRegex;
}
}
Но это не удаление персонажей, как я ожидал. Что я делаю неправильно?
Спасибо заранее.