在多个Web服务之间重用类型

Coo*_*ker 8 c# web-services webservice-client

我有一组相关的Web服务,它们在它们之间共享某些类型,特别是TokenService生成的“令牌”。

在Visual Studio中使用“添加引用”时,将生成代理类,并且每个Web服务都将复制许多类(例如Token类)。

为了解决这个问题,我编写了以下powershell脚本来为可重复使用类型的Web服务生成.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
Run Code Online (Sandbox Code Playgroud)

这将Web服务“链接”在一起,重新使用共享的类,并且似乎可以正常工作。

这种方法是否有问题,和/或是否有更好的方法来实现相关Web服务之间的共享类?

编辑:请注意,这些不是我们开发的Web服务,我们无权访问服务器端使用的代码或类。

Mix*_*xim 1

为什么您不创建一个类库项目来在多个解决方案之间共享代码?或者您可以为所有微服务创建项目模板。我认为,你当前的方法是肮脏的且不受支持的黑客。