我们通常使用Web引用来逐字地使用Web服务(visual studio)。但是,我的问题是另一种方式。我需要从c#类调用特定的Web服务,以使其他人可以使用Web服务。
答案 0 :(得分:3)
首先,如果您有选择,您应该在服务器和客户端上使用WCF。如果由于某种原因无法在服务器上使用它,那么至少在客户端上使用“添加服务引用”而不是“添加Web引用”来使用它。 “添加Web引用”是传统ASMX技术的一部分,不应该用于新开发。
其次,当然您可以创建一个单独的类库,并在该库中使用“添加服务引用”。然后,您可以编写一个具有调用该服务的公共方法的类。此类库的用户将调用您的公共方法,而不会直接调用该服务。
答案 1 :(得分:1)
您可以通过在VS中展开Web引用来提取Web引用的C#代码类(如果我记得很清楚,则显示隐藏文件)。 您应该找到一个Reference.cs文件,它是您的Web服务的代理客户端代码。
它包含调用WS所需的一切。您可以将其复制到其他地方,将其包含在另一个项目中,更改其命名空间/代码等。从长远来看,如果相应的WS发展,维护此文件将是一件痛苦的事。
无论如何,如果您有选择,您应该遵循@JohnSaunders关于WCF的建议