Paypalで巨大なレンガの壁にぶつかりました。 WSDLを使用していくつかのラッパークラスを作成するために、通常のC#プロジェクトを作成しました。
非Webプロジェクトを作成する場合、wsdlを追加する唯一のオプションはWebサービス参照です。これにより、Webリファレンスと同じプロキシクラスのセットが作成されますが、実際にはそうではありません。Paypalの人たちも気づいていないことをさらに追加します。
このため、このプロキシクラスのリストでサービスとして使用する適切なインターフェイス(SoapBinding)を探していましたが、PayPalAPIAASoapBinding
がなかったため、Paypalの連絡先を伝え続けました。
Webリファレンスベースのサービスリファレンスに表示されるPayPalAPIAASoapBinding
が表示されなかったため、使用する必要があるものとして表示された次の2つのインターフェイスしか表示できませんでした。
PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient
それで、私はおそらく、WebリファレンスがWebプロジェクトのオプションであるWebリファレンスに対して、サービスリファレンスを作成していたと思いました。ただし、サービス参照をWebプロジェクトと密結合させたくありません。そのため、C#プロジェクトを作成しました。
それでは、サービスリファレンスとWebリファレンスとは一体何でしょうか?また、Service Referenceがループをスローし、Web Referenceとは異なるインターフェイスのセットを提供する場合、これを別のプロジェクトにどのように分離するのですか?
また、物事をさらに混乱させるために、VS 2008にはWebサービスアプリケーションプロジェクトがあります。
だから私は何を使うのですか? 。NET 3.5フレームワークを使用しており、notWCFに移行する準備ができています。 WCFを使用していない場合でも、新しいサービスリファレンスを使用できますか?まだWCFではなく.NET 3.5を使用していて、基本的なWebサービスを実行したい場合は、WCFフレームワークを使用せずに、サービスリファレンスルートに移動しますか?つまり、まったく異なる世代のWSDLを取得するということだけで、.NET 2.0 Webリファレンスのように使用できますか?
Web参照の追加は、古いスタイルの非推奨のASP.NET Webサービス(ASMX)テクノロジーです(ユーザーのXmlSerializerのみを使用)-これを行うと、ASMX WebサービスのASMXクライアントが取得されます。これは、ほぼすべてのプロジェクト(Webアプリ、Webサイト、コンソールアプリ、Winforms-名前を付けます)で実行できます。
サービス参照の追加は、WCFサービス参照を追加する新しい方法です。これにより、単純な古いASMXのものよりもはるかに高度で柔軟なサービスモデルが提供されます。
WCFに移行する準備ができていないため、本当に必要な場合は、古いスタイルのWeb参照を追加することもできます。「サービス参照の追加」を行うとき、表示されるダイアログで[詳細設定] ]ボタン左隅の[]ボタン:
次に表示されるダイアログで、下部の[Web参照の追加]ボタンを選択します。
あなたの質問を正しく理解した場合:
WCFサービス参照の代わりに.net 2.0 Webサービス参照を追加するには、プロジェクトを右クリックして、[サービス参照の追加]をクリックします。
次に、ダイアログの左下にある「詳細設定」をクリックします。
次に、次のダイアログの左下にある[Web参照の追加...]をクリックします。
これで、探しているように通常のSOAP Web参照を追加できます。
サービス参照を追加すると、WCFクライアントを作成できます。これを使用して、適切なバインディングを使用すれば、通常のWebサービスと通信できます。 Web参照を追加すると、only Webサービス(つまり、SOAP)参照を作成できます。
WCFの準備ができていない(本当に理由がわからない)と確信している場合は、通常のWebサービス参照を作成する必要があります。
最終的には、両方が同じことをします。コードにはいくつかの違いがあります。Webサービスはプロジェクトのルート名前空間を追加しませんが、サービスリファレンスはサービスクラスをプロジェクトの名前空間に追加します。 ServiceSoapClient
クラスには別の名前が付けられますが、これは重要ではありません。 TFSを使用する場合は、ソース管理でより適切に機能するため、サービスリファレンスを使用します。どちらもSOAPプロトコルで機能します。
サービスリファレンスは新しいものであり、メンテナンスが容易なので、サービスリファレンスを使用する方が良いと思います。