Всем привет!
Есть вот такой небольшой SDK (находится в публичном доступе):
https://yadi.sk/d/0EZGYGDk34AGJZ
Всё в нём хорошо, но:
1) Существуют смежные SDK, использующие те же самые типы.
2) Существуют различные версии SDK, у которых в операциях используются различные soapAction.
Как смешать их в одну большую кучу, и получить на выходе независимые файлы исходного кода, сгруппированные по сборкам-зависимостям? Если вырезать import/include зависимости, код закономерно, не сгенерируется. Если не вырезать — получим дублирование типов в каждом файле. При этом две операции с одинаковым названием и разными soapAction'ами и вовсе не представляется возможным запилить. В худшем (текущем) сценарии получаем наборы сборок под каждую версию API с дублированием типов в каждой + набор Xml-сериализаторов для них. Прожорливые, и не взаимодействующие между собой.
Я уже готов собирать всё в один CS-файл, разбирать его Roslyn'ом и генерировать по новой, попутно формируя наборы обёрток над операциями. Но, может, существует менее велосипедный способ решения подобных проблем?