C# webservices中的方法重载

C# webservices中的方法重载,c#,asp.net,web-services,C#,Asp.net,Web Services,我有两个关于web服务的问题 如何在web服务中实现方法重载 如何在web服务中实现安全性(身份验证) 如何在web服务中实现方法重载 如果你用的是肥皂,你不能。方法名称在导出的WSDL中必须具有唯一的名称。根据您使用的技术,有不同的方法指定方法名称。例如,在WCF中,可以使用属性指定名称: [ServiceContract] public interface IMyService { [OperationContract(Name = "Foo")] void Foo();

我有两个关于web服务的问题

  • 如何在web服务中实现方法重载
  • 如何在web服务中实现安全性(身份验证)
  • 如何在web服务中实现方法重载

    如果你用的是肥皂,你不能。方法名称在导出的WSDL中必须具有唯一的名称。根据您使用的技术,有不同的方法指定方法名称。例如,在WCF中,可以使用属性指定名称:

    [ServiceContract]
    public interface IMyService
    {
        [OperationContract(Name = "Foo")]
        void Foo();
    
        [OperationContract(Name = "FooWithId")]
        void Foo(int id);
    }
    
    如何在web服务中实现安全性(身份验证)

    对于在WCF中实现安全性来说,这是一个非常好的开端。

    对于重载,可以:

    [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);
    }
    

    你所说的认证到底是什么意思?显然,您可以使用验证密钥访问webservice。这个问题令人困惑。请详细说明。

    可能重复的问题请不要合并问题。您的第一个问题是完全重复的(当您键入此问题标题时,会显示在搜索结果中…),而第二个问题与第一个问题无关。您根本不应该使用ASP.NET Web服务(ASMX)。所有新的web服务开发都应该使用WCF。在这种情况下,当我不使用SOAP时,如何实现方法重载?@Vijjendra,那么你在使用什么?我在下面的链接中看到了这一点。。我们可以在Web服务中实现重载。但是你说不。。这就是为什么我要问@Vijjendra,不,你不能在WSDL中向客户机公开它们。在WCF中,您可以提供不同的方法名称,如我的示例所示。此方法名称将用于向客户端公开该方法。但它必须是独一无二的。很明显,您使用的不是WCF,而是现在不推荐使用的经典ASMX Web服务。您应该考虑将代码迁移到WCF。