3

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

フロントエンド側では、私のコードは両方のWeb サービスを使用し、両方のサービスからのエンティティを (異なる名前空間で) 別のものとして認識します。そのため、両方のサービスでエンティティを使用できません。

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

私は自分のエンティティでこれを行いました:

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

私のIDEが両方のWebサービスでクラスが同じであることをどういうわけか「認識」して、両方のクラスに個別のエンティティを作成しないことを願っていますが、うまくいきません。

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

4

3 に答える 3

4

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

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

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

より詳しい情報:

于 2008-10-06T19:40:39.613 に答える
1

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

さて、.NET 2.0 でこれを行う方法については、詳細を説明できませんでした...

于 2008-10-06T19:14:14.097 に答える
0

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

于 2008-10-06T19:19:59.030 に答える