У меня есть коллекция связанных веб-сервисов, которые разделяют некоторые типы между ними, в частности, «токен», сгенерированный TokenService.
При использовании «добавить ссылку» в Visual Studio создаются прокси-классы, и многие классы, такие как класс Token, дублируются для каждого веб-сервиса.
Чтобы решить эту проблему, я написал следующий скрипт powershell для генерации файлов .cs для веб-сервисов, которые повторно используют типы.
$svcutil = get-item ((get-item 'Env:\ProgramFiles(x86)').Value + "\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\svcutil.exe")
$csc = "C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe"
& $svcutil "http://Path/to/WebService/WSTokenService?wsdl" /o:WSTokenService.cs
& $csc /target:library /out:temp.dll WSTokenService.cs
& $svcutil "http://Path/to/WebService/WSAssetService?wsdl" /r:temp.dll /o:WSAssetService.cs
& $csc /target:library /out:temp.dll WSTokenService.cs WSAssetService.cs
& $svcutil "http://Path/to/WebService/WSContactService?wsdl" /r:temp.dll /o:WSContactService.cs
& $csc /target:library /out:temp.dll WSTokenService.cs WSAssetService.cs WSContactService.cs
..
repeat for 8 webservices
Это «цепляет» веб-сервисы вместе, повторно используя общие классы, и кажется работающим.
Есть ли какие-либо проблемы с этим подходом и / или есть ли лучший способ обеспечить совместное использование классов между соответствующими веб-сервисами?
Изменить: обратите внимание, что это не веб-сервисы, разработанные нами, и у нас нет доступа к коду или классам, которые используются на стороне сервера.