2016-12-27 18 views
0

WCFサービスを初めて利用しています。私はプロキシを生成する3つの方法について知っています。WCFプロキシの生成パスの種類を選択しますか?

  1. ClientBase

を使用してSvcUtil

  • を使用したサービスの参照
  • を使用しかし、私は、私は、どのタイプを使用する必要があり、その場合には混乱しています。私の場合、私はサービスコードを持っていない第三者サービスのプロキシを生成する必要があります。それは私に次の問題を与えるので、私はサービス参照の追加を使用したくないです。このstackoverflow questionに記載されています。ですから、私はclientBaseを使いたいと思います。しかし、私はサービス参照を使わないと使えないと思う。私はかなりプロキシの種類を選択する必要がありますかなり混乱しています。

  • +0

    あなたのライブラリプロジェクトにサービス参照を追加しないでください。その場合、アプリケーション – MickyD

    +0

    その場合、私は複数の場所でサービス参照を追加する必要がありますこのサービスを使用して複数のアプリを持っている。私はその良い方法を考えていない。 – TBAG

    +0

    ああ、私は理解していません、下の私の答えを参照してください – MickyD

    答えて

    0

    私の場合、サービスコードを持たない第三者サービス用のプロキシを生成する必要があります。

    私はこのサービスを使用して複数のアプリを使用します。その場合

    あなたはそれがあなたのプロジェクトのすべてが使用できる単一のライブラリを生成することができますので、彼らは、.NETライブラリであっても、SvcUtilを使用したほうが良いです。それが生成された後、いつでもそれを微調整することができます。

    サービス参照の追加は、一方の.exeでは問題ありませんが、発見したように、プロセスを繰り返す必要があり、複数のWCFタイプの定義で終わる複数のアプリケーションが面倒ですただメンテナンスを増やすつもりです。

    WCFクライアントの設定をアプリケーションのapp.configに残し、クラスライブラリのapp.configは読み込まないようにしてください。

    WCF the Manual Way… the Right Wayの場合は、あなたの人生が楽になるはずです。

    しかし、SOAP純粋主義者は、ベンダーが提供する唯一のものは、あなたがあなたの型をとにかく生成する必要があるSOAP WSDL XMLファイルだと主張します。 (悲しいことに、.NETのデフォルトの振る舞いは、先頭から最後までです)

    +0

    私はサービスの所有者である場合のみClientBaseを使用することができます。それが正しいか? – TBAG

    +0

    通常、サービスインタフェースのタイプが必要です。ベンダーが提供する場合を除き、クライアントプロキシの生成時に生成されたものを使用します。これはその時点では遅すぎます。確立されたコードを使用することもできます。ベンダーが.NETクライアントライブラリの形式でAPIを提供している場合は、提供するインタフェースとともに「ClientBase」を使用して独自のプロキシを作成できます。しかし、彼らはそれをやっているようには聞こえません。あなたの質問に答えるには、誰でも 'ClientBase'を使うことができますが、最初にサービス契約が必要です – MickyD

    +0

    Svcutilを使用してプロキシを生成した後もまだ 'contract'属性が無効です - 'clientContractType' - 列挙制約が失敗しました。 – TBAG

    関連する問題