我有服务器和客户端。
客户端调用服务器上的方法,服务器作为响应必须准备一个字典并发送回客户端。
此操作可能需要一些时间。
它应该是异步的。我阅读说明和示例。
主要是 BeginXXX 和 EndXXX IAsyncResult。但是如果我需要服务器返回对象字典。我该如何实施?
我想在发送回调委托时,我可以发送客户端函数之一的签名作为委托,当服务器完成时,它将使用正确的字典数据调用委托。
如果我以正确的方式理解你,你会问这个(基于 eLibrary 项目): WCF 服务器端:
EBooksLibraryEntities ebe = new EBooksLibraryEntities();
public List<Book> tabBooks()
{
return ebe.Books.ToList();
}
客户端:
ServiceReference1.Service1Client sr = new ServiceReference1.Service1Client();
List<ServiceReference1.Book> llb = new List<ServiceReference1.Book>();
private void GetBooksByAuthor()
{
sr.tabBooksByAuthorCompleted += new EventHandler<ServiceReference1.tabBooksByAuthorCompletedEventArgs>(sr_tabBooksByAuthorCompleted);
sr.tabBooksByAuthorAsync();
}
void sr_tabBooksByAuthorCompleted(object sender, ServiceReference1.tabBooksByAuthorCompletedEventArgs e)
{
foreach (var item in e.Result)
{
yourList.Add(item);
}
}