0

多くの共有 XSD タイプ (各 WSDL で繰り返される) を持つインライン化された XSD を使用した WSDL ファイルはほとんどありません (今後不定期に取得する予定です)。これらの WSDL を処理し、生成されたクラスをできるだけ少ない手作業で再利用する方法を考える必要があります。私が考えていた最も簡単な解決策は、各クラスを個別のファイルに生成することです。これにより、個別のクラスが確保されます。

再利用オプションを指定して svcutil.exe を既に試しましたが、私の場合はうまくいかないようです。継承 (シリアライゼーションの XmlIncludeAttribute) にも問題があります。各 WSDL には、継承階層全体の一部しか含まれていません。

そのため、現在持っているすべての WSDL を取得し、それらから XSD を抽出し、それらの XSD を 1 つの大きな XSD にマージし、このマージされた XSD ファイルから C# クラスを生成する必要があるようです。

この種の問題に対する実証済みの解決策はありますか? ヒントとコツをいただければ幸いです..

4

1 に答える 1

0

同様の問題がありました。svcutil は、すべてのクラスを含む 1 つの非常に大きな CS ファイルを生成しました。

Resharper を使用して、ファイルを個々のクラス ファイルに分割しました。

svcutil の再利用オプションは、xsd にクラスを含む dll がある場合にのみ機能します。

次のようにできます。

  • 各 wsdl を独自のディレクトリに配置します
  • それぞれでsvcutilを実行します
  • resharper を使用してファイルを分割する
  • 重複する名前のファイルをスキップして、すべてのファイルを単一のディレクトリにコピーします
于 2012-08-25T20:44:26.530 に答える