我正在开发一个项目,我有2个需要相同实体的Web服务。 2个Web服务位于同一台服务器上,因此在后端,它们共享相同的类。
在前端,我的代码使用两个 Web服务,并将两个服务中的实体视为独立的(在不同的名称空间中),因此我无法在两个服务中使用该实体。 / p>
有没有人知道如何在.NET 2.0中使用它?
我用我的实体完成了这个:
[XmlType(TypeName = "Class1", Namespace = "myNamespace")]
public class Class1
{
public int field;
}
希望我的IDE以某种方式“知道”两个Web服务上的类是相同的,这样它就不会为这两个类创建单独的实体,但是没有运气。
这可能与.NET 2.0 Web服务有关吗?
答案 0 :(得分:4)
我认为您无法从VS内部执行此操作,但您可以手动使用wsdl.exe
实用程序,如下所示:
wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl
请注意/sharetypes
选项可启用类型共享功能。此功能为不同服务之间共享的相同类型创建一个具有单一类型定义的代码文件(名称空间,名称和线路签名必须相同)。
更多信息:
答案 1 :(得分:1)
我不确定.NET 2.0的实现细节,但我相信你想要做的是将公共类放在一个单独的XSD文件中,并从你的两个WSDL中引用它。这样,公共类型在两个服务之间具有相同的命名空间。
现在,您如何在.NET 2.0中执行此操作我无法向您提供有关...的详细信息。
答案 2 :(得分:0)
您可以检查实体的命名空间吗?确保它们在两个Web服务中都相同。