1

出発点として WSDL と XSD があります。(WSDL は、WCSF Blue ツールを使用して XSD から生成されます)。ツールを使用して WSDL からサービス コードが生成されます。プロジェクト名は「Autogenerated_Service_Project」です。このプロジェクト内には、[ServiceContract] および [DataContract] クラスがあります。「EmployeeDataContract」という名前のデータ コントラクトがあります。GetEmployee() サービス オペレーションでは、このデータ コントラクトがクライアントに返されます。

「Business_Project」という名前のビジネス レイヤー プロジェクトがあります。「従業員」エンティティ オブジェクトを返すメソッドがあります。

現在、「Autogenerated_Service_Project」内の「Business_Project」を参照しています。

Business_Project.MyClass b = new Business_Project.MyClass();
EmployeeDataContract d = b.GetAssociate();
return EmployeeDataContract;

問題は、WSDl に変更が発生したときに発生します。WSDL が変更されると、「Autogenerated_Service_Project」が再作成され、上記のコードは失われます。

このコードロスを克服する解決策は何ですか?

注: 「Autogenerated_Service_Project」は最上位のプロジェクトです。理想的には、他のプロジェクトから参照できないようにします。

4

2 に答える 2

2

ビジネス層を呼び出す方法を変更することができます (ソリューションに追加の層が必要な場合があります)。
ただし、単純な方法では、プロキシを一度生成し、WSDL に変更が発生したときに変更を手動で処理するか、新しいサービスにのみツールを使用します。
WSDL のサービスがきめ細かく設定されている場合、このソリューションを適用できる可能性があります。

于 2013-03-16T17:35:09.283 に答える
1

これは、別のファイルで部分クラスを使用することで解決できます。質問で与えられたコードは、この新しい部分クラスファイルに移動できます。このファイルは、自動生成されたファイルが再作成されても保持されます。

于 2013-03-18T11:09:16.933 に答える