2012-01-10 1 views
2

私は長年にわたってグーグルを探していましたが、私が直面している問題に対する答えを見つけることはできません。ここでは状況があります:Visual StudioでWebサービスの戻り値の型が既存の型と同じであることを理解してください

私は、たとえば、タイプXの

のオブジェクトを返すことで、ウェブメソッドを持つ.NET Webサービス(ないWCFサービスが、昔ながらのWebサービス)を、持っています今、私は別の.NetプロジェクトからこのWebサービスへのサービス参照を作成すると、ビジュアルスタジオはプロキシクラス(reference.vb内)を生成し、このクラスのWebメソッドの戻り値の型はプロキシクラスです型Xは、Webメソッドの両端に存在する外部参照で宣言されている型です。つまり、型Xは、型Xの代わりに型Yを入力します。

何か方法はありますか(サービス自体はWebサービスを維持すべきですが、参照が "サービス参照"または "Web参照"であるかどうかは気にしません)私はビジュアルスタジオに、プロキシクラスであり、メソッドの戻り値の型に既存の型を使用できますか?

私は、サービス参照が自動的に型をマップできることを知っています(サービス参照の作成時にこれらの設定を行うことができます)。しかし、これが唯一のWCFサービスへのサービス参照を作成するときに動作しているようです、ではない通常の.NET Webサービスへ

更新:私が何とかVisual Studioはタイプの名前空間を一致させるために必要と思われる

。 John Saundersは、私がタイプの完全な名前空間を指定するために使用できるxmltype属性に私に示唆しました。これがうまくいくかどうか試してみます。

私はまた、どのように視覚スタジオがクラスにマッチするかを考えました。 Webサービスのwsdlの名前空間に関する情報はどこにもないようです(スタジオは参照を生成するための入力としてwsdlを使用すると仮定します)。

Update2: xmltypeを使用して名前空間をマップしようとしました。私はどちらの名前空間(実際のClrNamespaceのuriの種類)を使用するか分からなかったので、私は両方を試しました。 uri名前空間を使用すると、svcmapに名前空間マッピングを作成することができましたが、これにより、VSを型をマップする代わりに、余分な名前空間内でreference.vbファイル内のコードが生成されていました。新しいアイデアは?これは本当に難しいことができますか?

+0

WCF _is_通常の.net Webサービス。 ASMXサービスは、古いレガシーテクノロジーです。 –

+1

「サービスリファレンスの追加」ダイアログで、「再利用タイプ」を指定してみましたか?クライアントアプリケーションが参照する共有型を含むアセンブリですか?名前空間のために問題が残っている可能性があります。 –

+0

これはちょっとした技術で、元の質問は残ります – PaulVrugt

答えて

0

これは単純にできないようです。短い答え:wcfサービス参照を使用して、サービスで使用されているタイプの共有ライブラリを作成し、参照とサービスとアプリケーションの両方で参照します。

関連する問題