2012-04-20 5 views
3

質問は簡単です。Web参照を別のクラスから公開することはできますか?

私たちは通常、Webサービスを文字通り(ビジュアルスタジオ)消費するためにWeb参照を使用しています。しかし、私の問題は別の方法です。私は他の人が利用できるようにWebサービスを利用できるようにするために、C#クラスから特定のWebサービスを呼び出す必要があります。

+2

上@JohnSaundersのアドバイスに従ってください、あなたのC#クラスとWeb参照クラスの違いは何ですか? Web参照はすでにそれを提供していませんか? – mellamokb

+0

あなたの質問は単純ではありません。それは分かりません。 –

+0

私の言語の間違いは非常に残念です。あなたの意図をありがとう。 – mabrTheBest

答えて

3

まず選択肢があれば、サーバーとクライアントの両方でWCFを使用する必要があります。何らかの理由でサーバー上で使用できない場合は、少なくとも「Web参照の追加」ではなく「サービス参照の追加」を使用してクライアント上で使用してください。 「Add Web Reference」は従来のASMXテクノロジーの一部であり、新しい開発には使用しないでください。

第2に、もちろん別のクラスライブラリを作成し、そのライブラリに「サービスリファレンスの追加」を使用することができます。次に、サービスを呼び出すパブリックメソッドを持つクラスを記述できます。このクラスライブラリのユーザーは、パブリックメソッドを呼び出し、サービスを直接呼び出すことはありません。

+0

ありがとう、それを非常に感謝します。私はそれをよく理解していませんでした。 – mabrTheBest

+0

yess ..非常に良いソリューションnether。私はちょうどここにあなたのポイントを持っています。 tqvm! – mabrTheBest

1

Web ReferenceのC#コードクラスをVSで抽出することができます(よく覚えている場合は隠しファイルを表示します)。 WebサービスのプロキシクライアントコードであるReference.csファイルがあります。

WSに電話するのに必要なものがすべて含まれています。他の場所にコピーしたり、別のプロジェクトに組み込んだり、名前空間/コードを変更したりすることができます。長期的には、対応するWSが進化すれば、このファイルのメンテナンスは苦痛になります。とにかく

、あなたは選択肢を持っている場合、あなたはWCF

+0

はい!これは私が求めている答えです.. tqvm! – mabrTheBest

+0

うれしいです。しかし、WCFについてのコメントを見落とさないでください:-) – jbl

+0

生成されたファイルを別のプロジェクトにコピーすることをお勧めしますので、私はdownvotingに近いです。これは、生成されたファイルを変更するほど悪いことです。 –

関連する問題