Есть некое приложение которое общается с веб-сервисом. Это приложение поддерживает загрузку плагинов, которые тоже могут обращаться к веб-сервису.
Проблема: класс веб-сервиса содержит как методы основного приложения, вроде «получить пользователя приложения», так и совсем левые методы для плагинов вроде «получить список организаторов мероприятия в определенном городе».
Хочется отделить мух от котлет и не сваливать все в один класс, но не хочется публиковать отдельные сервисы для каждого плагина.
Попробовал вариант с пространствами имен, типа такого:
[ServiceContract(Namespace = "http://organisation.ru/basicoperations")]
public interface IBasicOperations
...
[ServiceContract(Namespace = "http://organisation.ru/extendedoperations")]
public interface IExtendedOperations
...
На клиенте такой способ позволяет добиться желаемого — там автоматически генерируется несколько клиентов для одного сервиса, но на сервере все равно все сваливается в один класс т.к. он реализует все интерфейсы.