Я хочу сохранить имена классов в своем файле конфигурации (ASP.NET / C#)

#c# #asp.net #configuration

Вопрос:

Я разрабатываю службу, которая будет предоставлять сообщения вызывающему пользовательскому интерфейсу на основе условий, существующих для каждого сообщения.

У меня есть файл json, в котором хранятся все различные возможные сообщения, которые может получать пользовательский интерфейс, и я ожидаю, что этот файл будет расти на протяжении всего срока службы приложения (т. Е. Я планирую добавлять новые конфигурации сообщений).

Проблема в том, что каждое сообщение имеет разные условия относительно того, должно ли оно быть включено в ответ, и эти условия зависят от последующего вызова, выполняемого какой-либо базе данных или другой службе, а затем логики, которая обрабатывает эти последующие вызовы, чтобы решить, является ли условие истинным или ложным.

Я хочу, чтобы каждое сообщение в моем файле конфигурации имело значение, которое преобразуется в класс в моем коде, чтобы при вызове конечной точки я мог просто вызвать метод «разрешения», передающий эту «конфигурацию сообщения», т. Е. Метод разрешения вызывает класс, связанный с этим сообщением (и это метод разрешения условий), и выполняет все необходимые вызовы нижестоящих служб.

Есть ли способ, чтобы каждое из моих сообщений имело классы, связанные с ними в моем файле конфигурации json? Мне не хватает гораздо более простого способа реализовать это?

Комментарии:

1. Обычно это может быть достигнуто путем размышления, но каковы ваши данные? Что вы пробовали до сих пор?

Ответ №1:

Как я вижу, когда вам нужно добавить новое сообщение в приложение, вы должны добавить его в файл конфигурации и дополнительно определить отдельный класс с условиями. Верно? Если ваш ответ «да», файл сообщений (json) не спасет вас от повторных сборок и развертываний. Вы можете перемещать свои сообщения в классы, реализующие интерфейс. Затем просто зарегистрируйте их как коллекцию и обрабатывайте сообщения через эту коллекцию. Сообщение и условия будут разрешены без каких-либо «волшебных» трюков. Конечно, для нового типа сообщения необходимо объявить новый класс с тем же интерфейсом, новым сообщением и соответствующей логикой.