4

好的,所以我在从界面(显示数据的窗口窗体)调用方法 GetClassAverage() 时遇到问题。我也收到以下错误“公共修饰符对此项目无效”...这是我的 IService.cs 文件中的代码

[ServiceContract]
public interface IClassRollService
{
    [OperationContract]
    List<Student> GetStudentList(int semester);
    [OperationContract]    
    double GetClassAverage(int anything);
}

在我的 Service.cs 文件中,我有

public double GetClassAverage()
{
    double sum = 0.0;
    double total;
    foreach (Student S in Students)
    {
        sum += S.Average;
    }
    return total = sum / Students.Count();
}

在我的 Windows 窗体上,我通过调用 client.GetStudentList() 填充了一个网格视图,但它不适用于 GetClassAverage()

我做错了什么或我错过了什么?

[编辑] 已经公开了,但我仍然无法从 Windows 窗体调用该方法。有没有其他方法可以将该方法的返回值获取到 Windows 窗体中。这与网络服务有关,我知道的就这么多。

4

2 回答 2

24

在接口中,所有方法根据定义都是公共的。这就是为什么它告诉你“公开”是无效的。只需从接口的方法定义中删除“public”关键字,一切都会好起来的。

于 2012-04-14T15:16:46.890 回答
5

您编辑的 IService.cs 看起来不错。您需要更改 Service.cs 中的实现签名以匹配您的接口:

public double GetClassAverage()

public double GetClassAverage(int anything)
于 2012-04-14T16:11:24.747 回答