在我的Service1.svc文件中,我有以下内容;
[OperationContract]
public List<Accounts> GetAllAccounts()
{
string Conn = "......";
List<Accounts> Accs = new List<Accounts>();
SqlConnection _con = new SqlConnection(Conn);
SqlCommand sc = new SqlCommand("SQL QUERY....", _con);
SqlDataReader reader;
_con.Open();
reader = sc.ExecuteReader();
while (reader.Read()) { Accs.Add(new Accounts() { Name = reader["Name"].ToString(), Qty = Convert.ToInt32(reader["Qty"]), Weight = Convert.ToDecimal(reader["Weight"]), Value = Convert.ToDecimal(reader["Value"]) }); }
_con.Close();
return Accs.ToList();
}
public class Accounts
{
public string Name { get; set; }
public int Qty { get; set; }
public decimal Weight { get; set; }
public decimal Value { get; set; }
}
我知道我的 SQL 是正确的,并且我已将此列表的内容打印到屏幕上以确保数据存在,但是我遇到的问题是当我尝试在浏览器中运行该服务时 - 它失败了。
现在,我相信这是因为我的IService.cs与返回的“列表”控件冲突。我得到的错误是;
我的 Service1.GetAllAccounts() 方法无法实现我的 IService1.GetAllAccounts(),因为它没有匹配的返回类型“System.....List”。
IService1.cs;
[ServiceContract]
public interface IService1
{
[OperationContract]
List<Accounts> GetAllAccounts();
}
public class Accounts
{
public string Name { get; set; }
public int Qty { get; set; }
public decimal Weight { get; set; }
public decimal Value { get; set; }
}
这个问题听起来很简单,但我对 C# 还很陌生,有人可以建议吗?