2011-04-16 77 views
5

我有2个与Web服务相关的问题。Web服务中的方法重载

  1. 我们如何在Web服务中实现方法重载。
  2. 如何在Web服务中实现安全性(身份验证)。
+1

可能重复[是否有可能重载webservices中的方法?](http://stackoverflow.com/questions/3043500/is-it-possible-to-overload-a-method-in-webservices) – 2011-04-16 19:36:17

+4

请不要混合问题。你的第一个问题是一个确切的副本(当你输入这个问题标题时,在搜索结果中显示出来......),第二个问题与第一个问题无关。 – 2011-04-16 19:36:46

+3

根本不应该使用ASP.NET Web服务(ASMX)。所有新的Web服务开发都应该使用WCF。 – 2011-04-16 19:39:14

回答

3

好吧超载:

[WebMethod(MessageName = "MaxInt", Description = "Compare two int values 
and return the max value", EnableSession = true)] 
public int MaxValue(int a, int b) 
{ 
    return (a > b ? a : b); 
} 
[WebMethod(MessageName = "MaxFloat", Description = "Compare two float values 
and return the max value", EnableSession = true)] 
public float MaxValue(float a, float b) 
{ 
    return (a > b ? a : b); 
} 

你正是通过认证是什么意思?您显然可以使用验证密钥来访问Web服务。问题很混乱。请详细说明。

7

我们如何实现Web服务中的方法重载。

如果您使用SOAP,则不能。方法名称在导出的WSDL中必须具有唯一名称。根据您使用的技术,有不同的方法来指定方法名称。例如,在WCF您可以使用[OperationContract]属性来指定一个名字:

[ServiceContract] 
public interface IMyService 
{ 
    [OperationContract(Name = "Foo")] 
    void Foo(); 

    [OperationContract(Name = "FooWithId")] 
    void Foo(int id); 
} 

如何实现Web服务安全性(认证)。

following guide是在WCF中实现安全性的一个非常好的开始。

+0

当我不使用SOAP在那种情况下,我怎么可以存档方法重载? – Vijjendra 2011-04-16 19:37:53

+0

@Vijjendra,你在用什么? – 2011-04-16 19:39:05

+0

我已经看到,在下面的链接..我们可以在web服务中实现重载。但你说没有..这就是为什么我问http://stackoverflow.com/questions/3043500/is-it-possible-to-overload-a-method-in-webservices – Vijjendra 2011-04-16 19:47:36