В настоящее время я выполняю рефакторинг большой службы WCF, которая состоит из одного интерфейса контракта на обслуживание (далее - SCI), используемого несколькими различными клиентскими приложениями.Я разделил SCI так, чтобы для каждого типа клиентского приложения был SCI, специфичный для операций, которые он требует.Некоторые общие разделы SCI определены в базовом SCI, который наследует определенный SCI клиентского приложения.
Существует один класс обслуживания, который реализует все клиентские SCI.Тот факт, что существует ситуация наследования алмазного интерфейса от совместно используемой базовой SCI, иногда означает, что одна и та же операция доступна через несколько SCI.При автоматической генерации клиентов (особенно с помощью асинхронных клиентских методов) результирующий код имеет много уродливых <generated-type>1,2,3
и т. Д.
. Чтобы этого избежать, я хотел бы добавить ссылку на службу для каждого изклиентские приложения, которые только генерируют клиента для SCI, относящегося к этому конкретному приложению.Это не должно привести к проблемам в связи с тем, что одна и та же функция появляется в разных SCI.
Возможно ли это?
Любые другие советы по достижению как модульности, так и повторного использования кода в этой ситуации также приветствуются..