是否有可能缺少对Reference.cs文件进行手工编码,以使Visual Studio允许多个服务引用共享命名空间?
我正在开发一个客户端应用程序,它使用属于同一解决方案的多个服务。微软为MS-Project Server提供的项目服务接口(PSI)API。而不是为每个单独的服务引用设置不同的命名空间,例如:
MyProject.ProjectService.ProjectServiceClient
MyProject.ResourceService.ResourceServiceClient
MyProject.TimesheetService.TimesheetServiceClient
如果我们可以将它们全部放入一个名称空间,那将是很好的,例如:
MyProject.Services.ProjectServiceClient
MyProject.Services.ResourceServiceClient
MyProject.Services.TimesheetServiceClient
随之而来的是分享公共代码的能力。例如,如果这些服务中的任何一个暴露了相同的数据协定。现在,如果我想编写我的客户端可以使用的代码,我必须为每个服务代理创建一个单独的版本,因为通用契约存在于三个不同的命名空间中。看看我要去哪里?
有可能吗?
更新
我们假设我无法访问服务代码(因为我没有),这意味着共享类库不是一个选项。在这种情况下我有什么选择?
答案 0 :(得分:1)
您可以将这些公共类放入由服务和客户端共享的类库中。然后,Visual Studio不会为每个服务引用生成类,而是使用公共类库。