无扩展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() {} 
} 
+0

谢谢理查德。我看到虽然代码我是东错了... – 2012-03-14 09:48:33