私の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が返された 'List' コントロールと競合しているためだと思います。私が得るエラーは次のとおりです。
私の Service1.GetAllAccounts() メソッドは、一致する 'System.....List' の戻り値の型を持たないため、私の IService1.GetAllAccounts() を実装できません。
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# にかなり慣れていません。