添加Web引用显示错误消息"已经定义了一个名为(Function Name)的成员,该成员具有相同的参数"

时间:2017-01-31 05:55:51

标签: c# asp.net web-services

我创建了一个Web服务。在App_Code下,我创建了两个部分类:

  1. Service.cs
  2. Service_Test.cs
  3. Service_Test.cs中,我创建了两种方法:

    [WebMethod(EnableSession = true, Description = "Method 1")]
    public void ActivateAsync(cMyClass[] myClass, out string[] ID)
    {
        // logic to retrieve data and set ID's to out parameter
        return;
    }
    
    [WebMethod(EnableSession = true, Description = "Method 2")]
    public void Activate(cMyClass[] myClass, out string[] ID)
    {
        // logic to retrieve data and set ID's to out parameter
        return;
    }
    

    当我编译Web服务时,它构建时没有任何错误。

    当我将此Web服务的引用添加到不同的项目并重建该项目时,它显示以下错误消息:

      

    错误78:输入' NameSapce.WebService.Service'已经定义了一个名为' ActivateAsync'具有相同的参数类型
      path \ Utility \ Web References \ WebService \ Reference.cs

    虽然我只创建了一种方法

    ActivateAsync(cMyClass[] myClass, out string[] ID)
    

    但在代码级别,它向我展示了两种可能的方法。 即

    1. void Service.ActivateAsync(cMyClass [] myClass)
    2. void Service.ActivateAsync(cMyClass [] myClass,object userState)
    3. 我已确认ActivateAsync类中未添加Service.cs方法。 当我按照以下方式更改ActivateAsync方法时,错误将在项目中解决。

      [WebMethod(EnableSession = true, Description = "Method 1")]
      public void ActivateAsync(cMyClass[] myClass, int nTest, out string[] ID)
      {
          // logic to retrieve data and set ID's to out parameter
          return;
      }
      

      我没有理由支持这种行为。

1 个答案:

答案 0 :(得分:1)

我已检查reference.cs文件并了解ActivateActivateAsync这两种方法的参数与reference.cs中创建参考的结果相同只有一个方法并跳过其他方法并抛出错误信息。

作为上述解决方案,我在上面的方法中添加了另外一种方法。顺序如下。

 1. public void ActivateAsync(cMyClass[] myClass, out string[] ID)
 2. public void TestMethod()
 3. public void Activate(cMyClass[] myClass, out string[] ID)

※不确定,但这可能是Visual Studio的内置错误