Я работаю над проектом клиент/сервер, но изо всех сил стараюсь, чтобы он работал, главным образом потому, что в PCL невозможно получить доступ к System.ServiceModel
.Xamarin, вернуть данные WCF в PCL из определенных библиотек платформы
Но это нормально, мне удалось использовать DependencyServices
, который я вызываю из PCL для управления соединением с сервером с каждой конкретной платформы.
Моя проблема, когда я называю, например
var result = DependencyService.Get<Interface>().Operation(param);
это будет идти к платформе конкретной, там я делаю привязки, конечную точку и вызвать реальную работу с WCF, то есть асинхронный, так теперь я не могу вернуть результат из WFC в этом методе, потому что после завершения операции он будет возвращен другому методу.
Моя цель - выполнить большую часть работы на PCL, поэтому мне не нужно начинать писать мой интерфейс несколько раз для каждой платформы. Поэтому в резюме мне нужен способ вернуть результат с сервера (WCF или какой-либо другой, который заставит его работать) в моем PCL.
Вы можете использовать другой интерфейс и инъекции зависимостей для этого. Кстати, я использую все вызовы WCF в PCL, не уверен, почему он не работает для вас. Вы используете XForms или Classic? –
Если функция, которую вы вызываете, является асинхронной, результат будет возвращен одному и тому же абоненту, если вы ждете. В чем проблема? Можете ли вы поделиться еще немного кода определения функций и вызовов? –
@YuriS Я использую XForms. Когда я помещаю свой service.cs в MyApp (Portable), я получаю такие ошибки, как: Тип или имя пространства имен «...» не существует в пространстве имен «System.ServiceModel» ..._. Он нормально работает, если я помещаю его в проект MyApp.Droid, поэтому я предположил, что он не будет работать в PCL. Надеюсь, у вас есть работа вокруг этого. – BrunoWB