我有一个名为ServerWCF的WCF服务库,其中包含“AdminService”服务。这项服务的方法之一是List LoadStation(),它应该从我的数据库中返回列车站列表。
我还有一个WPF客户端,我正在使用一个应该包含站点城市的下拉列表。当我在名为AdminServiceReference的客户端中添加服务引用时,我注意到该方法的签名是Station [] Load Station()而不是ListLoadStation()。我不知道我是否可以对此做任何事情,因为代码是在客户端自动生成的,但无论如何(我使用了resharper重构建议,但没有任何区别)。问题是,在下面的代码中,永远不会访问foreach行。我在上面的一行上放了一个断点,我走进去,注意到服务器返回的列表包含了所有的站点,这是一件好事,但是在我走出去并且一步一步之后,该程序不会转向foreach填充下拉列表,但返回到第二行,这就是为什么,显然,我的下拉列表仍然是空的,孤独和悲伤的原因:(任何提示我如何解决这个问题?PS:相同的代码工作正常我的列表是一个ArrayList,只包含Cities,但我需要所有的对象。
客户代码:
private void fromStationCB_DropDownOpened(object sender, EventArgs e)
{
var adminProxy = new AdminServiceClient();
fromStationCB.Items.Clear();
var list = adminProxy.LoadStations();
foreach (var items in list)
fromStationCB.Items.Add(items.City);
label5.Content = "";
}
服务器代码:
public List<Station> LoadStations()
{
List<Station> list = new List<Station>();
using (var context = new RailwaySystemModelContainer())
{
/*foreach (var station in context.Stations)
list.Add(station);*/
list.AddRange(context.Stations);
return list;
}
}
答案 0 :(得分:0)
使用list作为返回类型时遇到了一些问题。它有所不同,但您可以尝试将LoadStations
的返回类型更改为Station数组。另外,请尝试删除您的引用,构建服务器端代码,然后再次添加引用。你可能会有一些不匹配。同时Station
应标记为DataContract
,其属性为DataMember
,以便通过服务成功传递。{/ p>