Web services ASMX web服务对象问题

Web services ASMX web服务对象问题,web-services,asmx,Web Services,Asmx,我目前正在开发一些web服务网络ASP.NET3.5Web服务。 我的业务层对于所有服务都是类似的——这意味着我在每个服务中都有相同的结构和相同的字段 但当我在服务之间传递这些结构时,每当我需要从全局类型转换为本地类型时,例如: 如果我有一个返回struct实例的方法 [WebMethod] public MyObject MyMethod () { return new MyObject(); } 当我从客户端服务调用它时,我会这样写: OuterService proxy = new Ou

我目前正在开发一些web服务网络ASP.NET3.5Web服务。 我的业务层对于所有服务都是类似的——这意味着我在每个服务中都有相同的结构和相同的字段

但当我在服务之间传递这些结构时,每当我需要从全局类型转换为本地类型时,例如:

如果我有一个返回struct实例的方法

[WebMethod]
public MyObject MyMethod () {
return new MyObject();
}
当我从客户端服务调用它时,我会这样写:

OuterService proxy = new OuterService();
global::MyObject obj = proxy.MyMethod();
其中,OuterService是由wsdl.exe生成的类的实例。 然后,为了将它传递给下一个服务,我需要将它从全局类型逐字段和逐属性地转换为本地类型

所以,我的问题是:

是否有任何优雅的解决方案可以在每个级别上传递这些对象而不进行转换


我曾考虑为所有web服务创建通用业务层,例如也可以声明为web服务,但要做到这一点,我需要更改太多内容,我认为必须有更简单的解决方案,由框架提供。

默认情况下,您不能跨web服务边界共享类型-但有一些解决方法,如


希望这有帮助

只需使用添加服务引用即可。默认情况下,它共享项目引用的程序集中的类型。只需添加对包含类型的程序集的引用,使用add Service reference或Update Service reference,您就可以完成所有设置。

Thanx用于响应。我不能这样做,因为我知道这样做将无法动态更改服务IP地址。我有10个在不同机器上运行的具有相同WSDL的服务。添加10个服务引用不是一个好的解决方案,事实并非如此。您可以通过在配置文件的元素中配置URL或在创建代理实例时更改URL。我一直都这么做。