私はOata、つまりWCFデータサービスを実行しています。SilverlightクライアントはサービスのURLのみを使用してプログラムの参照をプログラムで追加できますか?SilverlightでWCFデータサービス(ODATA)参照をプログラムで追加する方法
現在、プロジェクトを右クリックし、サービス参照を追加し、発見してサービス参照を追加してサービス参照を追加します。プログラムでどのように行うことができますか?
私はOata、つまりWCFデータサービスを実行しています。SilverlightクライアントはサービスのURLのみを使用してプログラムの参照をプログラムで追加できますか?SilverlightでWCFデータサービス(ODATA)参照をプログラムで追加する方法
現在、プロジェクトを右クリックし、サービス参照を追加し、発見してサービス参照を追加してサービス参照を追加します。プログラムでどのように行うことができますか?
それはいくつかの理由のために可能ではないですが、ここではそれらのカップル:
は、Visual Studioでサービス参照の追加コード(サービスによって公開されるエンティティおよび他のタイプのクライアント側のクラス)を生成します。 Silverlightには、この作業を簡単に処理するのに必要なライブラリがありません(多くのコードをSilverlightに書き換えて移植する必要があります)。
コードで実際に使用するには、生成されたコードをコンパイルする必要があります。コンパイラを含んでいないのでSLでこれを行う方法はありません。
これを使用しているコードでは、先に分かっていない型(上記のコードで生成された型)を処理できなければならないので、実際の使用にはあまり変わりありません。だから、多くの反射や他の同様のトリックを使わなければならないでしょう。
任意のODataサービスにアクセスできるクライアントアプリケーションを作成する場合は、Microsoft.Data.OData.dllを参照することをお勧めします。これは最近のCTPの一部です:http://blogs.msdn.com/b/astoriateam/archive/2011/10/13/announcing-wcf-data-services-oct-2011-ctp-for-net-4-and-silverlight-4.aspx そして、それはODataフォーマット(XmlReader/XmlWriterのようなものですが、ODataのためのもの)のための読者とライターを実装しています。特に、それはサービスの知識を必要とせず、ODataの応答を読み取ることができます。
次の操作を実行する必要があります。
BasicHttpBinding binding = new BasicHttpBinding();
var endpoint = new EndpointAddress("<Yours Endpoint Address>");
var factory = new ChannelFactory<IYourServiceContract>(basicHttpBinding, endpointAddress);
これが役立つことを願っています。
しかし、これは私が間違っていない場合、通常のWCFサービス用です.WCFデータサービスの場合と同じ方法ですか? –