3

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

在前端,我的代码同时使用这两个Web 服务,并将来自这两个服务的实体视为独立的(在不同的命名空间中),因此我不能在这两个服务中使用该实体。

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

我已经用我的实体做到了这一点:

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

希望我的 IDE 能以某种方式“知道”两个 Web 服务上的类是相同的,这样它就不会为两个类创建单独的实体,但没有运气。

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

4

3 回答 3

4

我认为您不能从 VS 内部执行此操作,但您可以wsdl.exe像这样手动使用该实用程序:

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

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

更多信息:

于 2008-10-06T19:40:39.613 回答
1

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

现在,您如何在 .NET 2.0 中执行此操作,我无法为您提供关于...的详细信息

于 2008-10-06T19:14:14.097 回答
0

你能检查实体的命名空间吗?确保它在两个 Web 服务中是相同的。

于 2008-10-06T19:19:59.030 回答