无扩展Observable.Using和WCF异步调用
问题描述:
我无法理解如何使用Observer.Using无扩展Observable.Using和WCF异步调用
我有下面的代码
public void Test()
{
Observable.Using(
() => new GFSClientServiceClient(),
(c) => ObservableGetParameters(c))
.Subscribe(
(response) => Debug.Print("response"),
(ex) => Debug.Print("{0} error: {1}", Name, ex.Message),
() => Debug.Print("{0} complete", Name)
);
}
private static Func<IObservable<Dictionary<string, Dictionary<string, string>>>> ObservableGetParameters(GFSClientService.GFSClientServiceClient client)
{
return Observable.FromAsyncPattern<Dictionary<string, Dictionary<string, string>>>(client.BeginGetParameters, client.EndGetParameters);
}
我似乎无法得到使用条款来工作。它一直告诉我,类型不能推断,但我不明白为什么?任何人有任何想法?
答
编辑:
我的第一个回答是不正确的。对于那个很抱歉。你可能想这样做:
public void Test()
{
Observable.Using(() => new Client(),
(c) => ObservableGetParameters(c))
.Subscribe((response) => Debug.Print("response"),
(ex) => Debug.Print("{0} error: {1}", "name", ex.Message),
() => Debug.Print("{0} complete", "name"));
}
private static IObservable<Dictionary<string, Dictionary<string, string>>> ObservableGetParameters(Client client)
{
return Observable.FromAsyncPattern<Dictionary<string, Dictionary<string, string>>>(client.BeginGetParameters, client.EndGetParameters)();
}
public class Client : IDisposable {
public IAsyncResult BeginGetParameters(AsyncCallback cb, object o) {
return default(IAsyncResult);
}
public Dictionary<string, Dictionary<string, string>> EndGetParameters(IAsyncResult res) {
return default(Dictionary<string, Dictionary<string, string>>);
}
public void Dispose() {}
}
谢谢理查德。我看到虽然代码我是东错了... – 2012-03-14 09:48:33