好的,所以我在从interfacce调用方法GetClassAverage()时遇到问题(显示数据的窗体)。我也得到以下错误 “修饰符public对此项无效”...这是我的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()来填充gridview,但它不适用于GetClassAverage()
我做错了什么或我错过了什么?
[编辑]已经公开但我仍然无法从Windows窗体调用该方法。有没有其他方法我可以从该方法获取返回值到Windows窗体。这与Web服务有关,我知道的很多。
答案 0 :(得分:16)
在界面中,根据定义,所有方法都是公共的。这就是为什么它告诉你“公共”无效。只需从界面的方法定义中删除“public”关键字,一切都会好的。
答案 1 :(得分:5)
您编辑的IService.cs看起来不错。您需要在Service.cs中更改您的实现签名以匹配您的界面:
public double GetClassAverage()
到
public double GetClassAverage(int anything)