2010-12-23 104 views
2

我能够重载webservice中的方法,虽然在访问时它将两种方法(与diff参数相同的方法)作为不同的操作进行分类。Webservice方法重载

有什么优势?有什么办法可以实现从客户端调用相同的方法,并根据它调用我需要的参数?

+1

你可以尝试使用可选参数:void YourFunc(int param1,int param2 = 0){} – Guillaume86 2010-12-23 17:09:53

回答

2

操作重载是面向对象编程语言中可用的概念。但是,WebServices不仅限于面向对象的平台。它们是以消息为导向的,消息可以在任何你选择的平台上构建/解构。由于所有平台都不提供操作重载,并且由于Web服务是用于跨平台集成的,因此Web服务支持操作重载是非法的。

现在,现实情况稍有不同。我可以在网上看到几篇文章,开发人员已经完成了这些工作OASIS自己似乎有些困惑,但他们最终还是ruled against operation overloading(见3.6节)。

3

有没有办法做到这一点,通过规则Web服务应该有唯一的名称。但是.NET只提供了一个选项,用于重载方法的MessageName属性。

+0

所以它不会超载,理想情况是它只是另一个操作。 – Mutant 2010-12-23 16:24:13