2008-10-06 60 views
3

我正在开发一个项目,其中有2个需要相同实体的Web服务。这两个Web服务位于同一台服务器上,因此在后端,它们共享相同的类。跨两个Web服务共享一个实体?

在前端方面,我的代码使用两个 Web服务,并将两个服务的实体看作是分开的(在不同的名称空间中),因此我无法在两个服务中使用实体。

有谁知道一种方法来允许它在.NET 2.0中工作?

[XmlType(TypeName = "Class1", Namespace = "myNamespace")] 
public class Class1 
{ 
    public int field; 
} 

希望我的IDE会以某种方式“知道”的类是在两个网络服务一样的,所以它不会创建两个独立的实体:

我已经与我的实体做到了这一点类,但没有运气。

这可能与.NET 2.0 Web服务有关吗?

回答

4

我认为你不能这样做,从内VS但你可以手动使用wsdl.exe工具是这样的:

wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl 

通知的/sharetypes选项,打开类型共享功能。此功能为不同服务之间共享的相同类型(命名空间,名称和连线签名必须相同)创建一个具有单一类型定义的代码文件。

更多信息:

1

我不确定使用.NET 2.0的实现细节,但我相信你想要做的是将公共类放在一个单独的XSD文件中,并从你的两个WSDL中引用它。这样,常见类型在两个服务之间具有相同的名称空间。

现在,你是怎么做到这一点的.NET 2.0我不能给你具体...

0

可以检查实体的命名空间?确保这两个Web服务都是相同的。