#c# #asp.net #configuration
Вопрос:
Я разрабатываю службу, которая будет предоставлять сообщения вызывающему пользовательскому интерфейсу на основе условий, существующих для каждого сообщения.
У меня есть файл json, в котором хранятся все различные возможные сообщения, которые может получать пользовательский интерфейс, и я ожидаю, что этот файл будет расти на протяжении всего срока службы приложения (т. Е. Я планирую добавлять новые конфигурации сообщений).
Проблема в том, что каждое сообщение имеет разные условия относительно того, должно ли оно быть включено в ответ, и эти условия зависят от последующего вызова, выполняемого какой-либо базе данных или другой службе, а затем логики, которая обрабатывает эти последующие вызовы, чтобы решить, является ли условие истинным или ложным.
Я хочу, чтобы каждое сообщение в моем файле конфигурации имело значение, которое преобразуется в класс в моем коде, чтобы при вызове конечной точки я мог просто вызвать метод «разрешения», передающий эту «конфигурацию сообщения», т. Е. Метод разрешения вызывает класс, связанный с этим сообщением (и это метод разрешения условий), и выполняет все необходимые вызовы нижестоящих служб.
Есть ли способ, чтобы каждое из моих сообщений имело классы, связанные с ними в моем файле конфигурации json? Мне не хватает гораздо более простого способа реализовать это?
Комментарии:
1. Обычно это может быть достигнуто путем размышления, но каковы ваши данные? Что вы пробовали до сих пор?
Ответ №1:
Как я вижу, когда вам нужно добавить новое сообщение в приложение, вы должны добавить его в файл конфигурации и дополнительно определить отдельный класс с условиями. Верно? Если ваш ответ «да», файл сообщений (json) не спасет вас от повторных сборок и развертываний. Вы можете перемещать свои сообщения в классы, реализующие интерфейс. Затем просто зарегистрируйте их как коллекцию и обрабатывайте сообщения через эту коллекцию. Сообщение и условия будут разрешены без каких-либо «волшебных» трюков. Конечно, для нового типа сообщения необходимо объявить новый класс с тем же интерфейсом, новым сообщением и соответствующей логикой.