【发布时间】:2015-09-01 09:35:37
【问题描述】:
我正在尝试实现一个自动完成文本框,它连接到 mongodb 服务器以从数据库中获取集合并查看它。我的参考是this。
Func<string, IObservable<Scrip[]>> getSuggestions = GetSuggestions;
GetSuggestions 看起来像
private IObservable<Scrip[]> GetSuggestions(string searchString)
{
return Observable.FromAsync(() => myService.SearchAsync(searchString));
}
Rx 实现看起来像
var results = from searchTerm in textChangedObservable
from serviceSuggestion in getSuggestions(searchString)
select serviceSuggestion;
results.ObserveOn(listBoxSearchResults).Subscribe(res =>
{
listBoxSearchResults.Items.Clear();
foreach (var r in res)
{
listBoxSearchResults.Items.Add(r);
}
});
我对如何在我的 WCF 服务中实现这一点有点困惑。我从一个方法开始
public async Task<List<Scrip>> Search(string searchString)
实现会是这样的
var ret = await _database.ListCollectionsAsync(options);
现在如何在保持方法异步的同时将返回值转换为 Task<List<Scrip>>?
【问题讨论】:
标签: c# wpf mongodb wcf asynchronous