2009-07-21 15 views
5

最近、web.configファイルにいくつかの名前空間を追加して、すべてのaspxページでさまざまな定数と列挙型を参照できるようにしました。これを追加してからasmx Webサービスをテストしようとするとエラーになります。これは、WSDLの生成時に、我々は次のエラーを取得することが表示されます:ランタイムコンパイル中に曖昧な参照エラーが発生しました

CS0104: 'Message' is an ambiguous reference between 'System.Web.Services.Description.Message' and 'InsTech.ForeSight.Message'

これを研究している間、私はDefaultWsdlHelpGenerator.asmxは、ランタイムコンパイル時に呼び出され、次のシグネチャを持ってそこに方法があることが判明しました:

void WriteSoapMessage(MessageBinding messageBinding, Message message, bool soap12) { 

このWebサービスファイルがメッセージを完全に修飾していないため、曖昧な参照を引き起こすMessageという名前空間にオブジェクトが定義されています。

web.configから名前空間を削除せずにこれを解決するにはどうすればよいですか?仮想ディレクトリ内の別のフォルダにWebサービスがあるので、名前空間にはっきりしたweb.configを追加しようとしましたが、動作していないようです。

ご協力いただければ幸いです。 おかげ ケビン

答えて

3

あなたは、あなたのコード内で名前空間のエイリアスを使用し、それらの間で異なるためにそれを使用することができます。

using ourOwn=our.own.namespace; 

そしてourOwn.Messageとしてあなたのメッセージクラスを参照してください。それは衝突を避けるでしょう。

+1

私のコメントをご覧ください。 WriteSoapMessageは私が書いた関数ではなく、.netフレームワークの一部であることを明確にすべきでした。 – Kevin

関連する問題