У меня возникла проблема с вызовом метода из моего DataService в моей ViewModel. Проблема заключается в том, что каждый метод, который я создаю в моей DataServicd-реализации, получает Async в моей модели ViewModel, поэтому я не могу получить от него никаких данных. Я не очень хорошо знаком с WCF, поэтому я не могу решить проблему самостоятельно.WCF Service Method всегда Async
Это 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>
! Как мне получить данные из службы?
Нет, это проблема, я не могу отключить их, потому что я программирую приложение для магазина Windows, и там вы не можете отключить асинхронные вещи. – romaneso
Хорошо, вы можете вызвать Task.Result или Task.Wait по этим задачам? Это возможно в Windows Store? Однако, вероятно, вы должны использовать ожидание. Это замечательно в приложениях с графическим интерфейсом. – usr
Да, я могу! Результат возможен! – romaneso