2012-04-20 81 views
3

问题很简单..Web引用可以从另一个类暴露吗?

我们通常使用web引用来逐字地使用web服务(visual studio)。但是,我的问题是另一回合。我需要从c#类中调用特定的Web服务,以使Web服务可供其他人使用。

+2

是你的C#类和Web引用类之间的差别@JohnSaunders建议?网络引用不是已经提供了吗? – mellamokb 2012-04-20 03:05:21

+0

你的问题并不简单;这是不可理解的。 – 2012-04-20 03:14:14

+0

我很抱歉我的语言错误。感谢你的意图。 – mabrTheBest 2012-04-20 03:25:55

回答

3

首先,如果您有选择,您应该在服务器和客户端上使用WCF。如果出于某种原因无法在服务器上使用它,则至少应使用“添加服务引用”而不是“添加Web引用”在客户端上使用它。 “添加Web引用”是传统ASMX技术的一部分,不应该用于新开发。其次,当然你可以创建一个单独的类库,并在该库中使用“添加服务引用”。然后你可以编写一个具有调用服务的公共方法的类。这个类库的用户将调用你的公共方法,而不会直接调用该服务。

+0

谢谢,非常感谢。即使我没有很好地理解它。 – mabrTheBest 2012-04-20 03:27:31

+0

yess ..非常好的解决方案。我刚刚在这里说明了你的观点。 tqvm! – mabrTheBest 2012-04-20 08:26:12

1

您可以通过展开VS中的Web引用(如果我记得很清楚,通过显示隐藏文件)来提取Web引用的C#代码类。 您应该找到一个Reference.cs文件,它是Web Service的代理客户端代码。

它包含您需要调用您的WS的所有内容。你可以将它复制到别处,将它包含在另一个项目中,改变它的命名空间/代码等等​​。从长远来看,如果相应的WS发展,维护这个文件将会很痛苦。

无论如何,如果你有选择,你应该遵循WCF

+0

是的!这是我寻求的答案.. tqvm! – mabrTheBest 2012-04-20 08:00:33

+0

很高兴看到它。不要忽略关于WCF的评论,尽管:-) – jbl 2012-04-20 08:10:29

+0

我接近downvoting,因为你建议将生成的文件复制到另一个项目。这几乎和修改生成的文件一样糟糕。 – 2012-04-20 19:39:07

相关问题