2011-03-21 22 views
4

是否有任何方式可能缺少手工编写Reference.cs文件,让Visual Studio允许多个服务引用共享一个名称空间?有没有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 

随着这一来共享通用代码的能力。例如,如果这些服务中的任何一个暴露相同的数据合同。现在,如果我想编写客户端可以使用的代码,我必须为每个服务代理创建一个单独的版本,因为常见协定存在于三个不同的名称空间中。看看我要去哪里?

有可能吗?

UPDATE

让我们假设我没有访问到服务代码(因为我没有),这意味着一个共享的类库是不是一种选择。在这种情况下我的选择是什么?

+0

哪个版本的Visual Studio?你是使用服务引用还是Web引用? – CodingGorilla 2011-03-21 19:15:15

+0

我正在使用Visual Studio 2010并添加一个Service Reference。 (使用PSI只是为了这个例子。) – SonOfPirate 2011-03-21 19:40:35

回答

1

您可以将这些公共类放入由服务和客户共享的类库中。然后,Visual Studio将不会为每个服务引用生成类,而是将使用通用类库。

+1

是的,我意识到这一点。我只是希望有一种方法可以让它变得更清洁 - 或者更好地说:自动。 – SonOfPirate 2011-03-21 19:42:25

+0

如果您控制服务的服务器端和客户端,这是一项非常棒的技术,并且有很多好处。我认为我最喜欢的这种技术的特点是你不再需要维护这些糟糕的服务引用dirs和Reference.cs文件,egads,这些都很简单。 – 2011-03-21 19:42:32

+0

@Chris:你仍然有Reference.cs文件,它们只是少了一些。 – 2011-03-21 19:44:49

相关问题