Записи настраиваемой конфигурации 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, и, по крайней мере, у вас будет ошибка времени разработки.

Или, что более важно, я бы предложил перенести логику проверки на потребителя данных (похоже на класс журналирования).

Другие вопросы по тегам