Записи настраиваемой конфигурации ASP.NET / ConfigurationSections + проверка бизнес-логики?
У меня есть несколько пользовательских записей конфигурации в моих файлах.config. Все грузит / работает нормально. Мне было интересно, если есть правильный способ проверить предоставленные данные - добавление бизнес-логики. Например...
<logFileSettings>
<logFile fileName="foo.log" uniqueName="log1">
<alerts>
-= snip =-
</alerts>
</logFile>
<logFile fileName="bar.log" uniqueName="log2">
<alerts>
-= snip =-
</alerts>
</logFile>
</logFileSettings>
Теперь я хочу убедиться, что uniqueName для каждого пользовательского раздела уникальны. Нужно ли делать это вручную вне моего пользовательского класса, что влияет на ConfigurationSection, или я могу сделать это там? (например, Сорта, как делегат после того, как он прочитал файл конфигурации или что-то?)
1 ответ
Это звучит как работа для потребителя данных, а не хранилища данных (в данном случае, web.config).
Можно читать / писать файл web.config из кода, но это почти всегда очень плохая идея (с одной стороны, запись всегда перезапускает веб-приложение, и даже чтение иногда бывает слишком). Я понимаю, что это не то, что вы спрашиваете, но я хотел указать на это, потому что я в ужасе от количества людей, которые безрассудно читают и пишут файлы web и app.config.
На ваш первоначальный вопрос о том, происходит ли событие при разборе файла, я прочитал и ничего не смог найти. Однако вы, вероятно, можете изменить XML-схему Visual Studio для файла web.config, и, по крайней мере, у вас будет ошибка времени разработки.
Или, что более важно, я бы предложил перенести логику проверки на потребителя данных (похоже на класс журналирования).