質問

同じエンティティを必要とする2つのWebサービスがあるプロジェクトに取り組んでいます。 2つのWebサービスは同じサーバー上にあるため、バックエンドでは同じクラスを共有します。

フロントエンド側では、私のコードは both の両方のWebサービスを消費し、両方のサービスのエンティティを(異なるネームスペースで)個別と見なしているため、両方のサービスでエンティティを使用できません。

.NET 2.0でこれを機能させる方法を知っている人はいますか?

エンティティでこれを実行しました:

[XmlType(TypeName = "Class1", Namespace = "myNamespace")]
public class Class1
{
    public int field;
}

私のIDEが何らかの形で「知っている」ことを願っています。クラスは両方のWebサービスで同じであるため、両方のクラスに個別のエンティティは作成されませんが、運はありません。

.NET 2.0 Webサービスでこれを行うことは可能ですか?

役に立ちましたか?

解決

VS内からはできないと思いますが、次のように wsdl.exe ユーティリティを手動で使用できます。

wsdl.exe /sharetypes http://localhost/MyService1.asmx?wsdl http://localhost/MyService2.asmx?wsdl

タイプ共有機能をオンにする / sharetypes オプションに注意してください。この機能は、異なるサービス間で共有される同一の型の単一の型定義を持つ1つのコードファイルを作成します(名前空間、名前、およびワイヤー署名は同一でなければなりません)。

詳細:

他のヒント

.NET 2.0の実装の詳細についてはわかりませんが、やりたいことは、共通のクラスを別のXSDファイルに入れて、2つのWSDL内から参照することです。このように、共通タイプは2つのサービス間で同じ名前空間を持ちます。

今、.NET 2.0でこれをどのように行うかについて、詳細を説明できませんでした...

エンティティの名前空間を確認できますか?両方のWebサービスで同じであることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top