2016-10-29 6 views
1

クライアント/サーバープロジェクトで作業していますが、ほとんどの場合、PCLでSystem.ServiceModelにアクセスできないため、動作させるのに苦労しています。Xamarinは、特定のプラットフォームライブラリからWCFデータをPCLに返します。

でも、私はPCLから呼び出すDependencyServicesを使用して、それぞれの特定のプラットフォームのサーバーとの接続を管理することができました。

私は、これは私は、それが非同期である、結合、エンドポイントを行うと、WCFから実際の操作を呼んでいるが、特定のプラットフォームに行きます

var result = DependencyService.Get<Interface>().Operation(param); 

例えば呼び出したら私の問題は、あります今度は、このメソッドでWFCからの結果を返すことはできません。これは、操作が完了したら別のメソッドに返されるためです。

私の目標は、PCLでほとんどの仕事をすることです。そのため、各プラットフォームでインターフェイスを複数回作成する必要はありません。ですから、私が必要とするのは、PCLのサーバー(WCF、またはそれを動作させる他のもの)の結果を返す方法です。

+0

をチェックこれを行うための別のインタフェースと依存性注入。ところで、私はPCLですべてのWCF呼び出しを使用していますが、なぜあなたのために機能しないのかわかりません。 XFormsやClassicを使用していますか? –

+0

呼び出している関数がasyncの場合、結果を同じ呼び出し元に返します。何が問題ですか?関数定義と呼び出しのコードをもう少し共有できますか? –

+0

@Yuri私はXFormsを使用しています。私がservice.csをMyApp(Portable)に置くと、_型または名前空間名 '...'のようなエラーが、 'System.ServiceModel'という名前空間に存在しません。 MyApp.Droidプロジェクトに置くと正常に動作するので、PCLで動作しないと仮定しました。あなたはこれを回避することを望みます。 – BrunoWB

答えて

1

VSを使用してPCLでのWCFプロキシ/クライアントを作成し、サービス参照があなたのオプションで利用できない場合は、これらすべての問題

enter image description here

を避けるためには、ライブラリの設定を使用でき

enter image description here

+0

サービス参照は、Windows Phone 8.1が選択されていない場合にのみ表示されます。 – BrunoWB

+0

だから、私はSilverlightでプロキシも生成していましたが、Windows Phoneをターゲットにすることはできません。 ServeModel – BrunoWB

+0

silverlightプロキシもポータブルライブラリで動作します。それはもう少し仕事ですが、実行可能です。私は窓の電話8.0のためだけにサービス参照は私のために働く –

関連する問題