3

我有一个 C# 项目,其中有许多对第三方产品的 Web 引用。所有这些 Web 服务调用都使用“用户上下文”类。因此,每个 Web 服务都接受完全相同的 XML 片段。

目前,当我点击所有不同的 Web 服务调用时,我必须保留许多这些“用户上下文”对象。生成的“用户上下文”类完全相同,只是放在不同的 .NET 命名空间中(XML 命名空间相同)。

我希望能够只传递这些实例中的一个。我怎么能那样做?

我正在使用 Visual Studio 2010 并通过添加 WebReference 来使用生成的类。我不反对使用其他一些框架或机制。我什至考虑过编写自己的代码,但是我需要使用许多 Web 服务(每个都有许多 Web 方法)。

更新:我最初是通过添加 Web 引用来添加这些的,现在我将它们添加为服务引用。Web 服务本身通过 InterSystems Caché 公开,我还没有研究它们与 WS-I 的符合程度。

4

2 回答 2

2

不确定 VS 2010,但在 2008 年,服务引用添加向导中有一个选项“在引用的程序集中重用类型”,它可以满足您的需要。为了在所有 Web 引用中具有相同的类型,请创建一个程序集,将这些类型定义放在那里,从您的项目中引用它,然后添加您需要的 Web 引用。

于 2010-07-01T17:17:17.923 回答
0

我通过只使用一个类并使用 XML 序列化/反序列化转换对象来解决这样的问题。但这仍然不是完美的解决方案。

于 2010-07-02T13:48:55.987 回答