我有一个C#项目,它有许多对第三方产品的Web引用。所有这些Web服务调用都使用“用户上下文”类。因此,每个Web服务都接受完全相同的XML片段。
目前,当我点击所有不同的Web服务调用时,我必须保留许多这些“用户上下文”对象。生成的“用户上下文”类完全相同,但只是放在不同的.NET命名空间中(XML命名空间是相同的)。
我希望能够只传递其中一个实例。我怎么能这样做?
我正在使用Visual Studio 2010并通过添加WebReference来使用生成的类。我并不反对使用其他一些框架或机制。我甚至想过滚动自己的代码,但是我需要使用许多WebServices(每个都有很多Web方法)。
更新:我最初通过添加Web引用添加了这些,我现在将它们添加为服务引用。 Web服务本身通过InterSystemsCaché公开,我没有研究它们与WS-I的一致性。
答案 0 :(得分:2)
不确定VS 2010,但是在2008年,在服务引用添加向导中有一个选项“在引用的程序集中重用类型”,它可以满足您的需求。为了在所有Web引用中使用相同的类型,创建一个程序集,将那些类型定义放在那里,从项目中引用它,然后添加所需的Web引用。
答案 1 :(得分:0)
我通过仅使用一个类并使用XML序列化/反序列化转换对象来解决这样的问题。但它仍然不是完美的解决方案。