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