2015-06-21 139 views
0

我有我的ViewModel中從我的DataService調用方法的問題。 問題是,我在我的DataServicd-實現中​​創建的每個方法都在我的ViewModel中獲取Async,所以我無法從中獲取任何數據。 我不太熟悉WCF,所以我無法自己解決問題。WCF服務方法始終異步

這是DataService的接口:

[ServiceContract] 
public interface IDataService 
{ 

    [OperationContract] 
    ObservableCollection<object> GetStartPageKPIObjects(); 

    [OperationContract] 
    Object DoSomething(); 
} 

這是我的DataService實現

public class DataService : IDataService 
{ 
    public ObservableCollection<object> GetStartPageKPIObjects() 
    { 
     ObservableCollection<object> tempItems = new ObservableCollection<object>(); 

     .........tempItems.add(...) 
     .........tempItems.add(...) 

     return tempItems; 
    } 




    public object DoSomething() 
    { 
     return new Object(); 
    } 
} 

這是我得到的對象引用的DataService:

******.ServiceReference.DataServiceClient dataClient = new ******.ServiceReference.DataServiceClient(); 
現在

,我想從我的服務訪問數據:

dataClient.GetStartPageKPIObjectsAsync(); 
dataClient.DoSomethingAsync(); 

但都返回(awaitable) Task<object>!我現在如何從服務中獲取數據?

回答

0

也有非異步方法,也許你沒有看到它們。您可以關閉服務參考設置中的異步方法生成。然後他們完全消失。

+0

不,這是問題,我不能關閉它們,因爲我正在編程一個Windows應用商店應用程序,並且您不能禁用異步事物。 – romaneso

+0

好的,你可以在這些任務上調用Task.Result或Task.Wait嗎?在Windows Store中可能嗎?雖然可能你應該使用await。它在GUI應用程序中很棒。 – usr

+0

是的,我可以!結果是可能的! – romaneso