У нас есть два клиентских приложения (веб-приложение и приложение агента), которые обращаются к методам в одной и той же службе, но с немного различными требованиями. Моя команда хочет контролировать поведение на стороне службы, передав параметр ApplicationType каждому методу - который по сути является перечислением, содержащим имя вызывающего клиентского приложения - который затем используется в качестве ключа для поиска в базе данных для настройки службы специфичные для клиента опции.
Что-то в этом вызывает у меня беспокойство, так как я не думаю, что служба действительно должна знать, какой клиент ее вызывает. Мне говорят, что так проще сделать, чем динамически передавать загрузку опций через вызов метода.
Что-то не так с клиентским приложением, которое сообщает службе, кто они? Или действительно нет никакой разницы между передачей ключа конфигурации и набором параметризованных опций?
Одна непосредственная проблема, которую я вижу, состоит в том, что если бы мы когда-либо открывали службу другому клиенту, управляемому третьей стороной, нам пришлось бы поддерживать их параметры конфигурации локально для них. На данный момент у нас есть оба клиентских приложения, так что это не такая большая проблема.
Как бы вы это сделали?