1

私はこの1日、元のXSDで定義されている制限を実際に維持するWCFサービスを生成する方法を見つけるのに苦労していました。基本的な問題は、制限(パターンなど)を含むXSDを使用してコントラクトファーストサービスを構築すると、サービスのデプロイ時に出力されるWSDL/XSDから制限が削除されることです。

同じ問題について不平を言っている他の誰かがいます:http://geekswithblogs.net/wojan/archive/2010/12/10/143086.aspx

私は2つのオプションがあると思うものが残っています:

  • Webサーバー(IISまたはIIS Express)でサービスによって生成されたWSDL/XSDを置き換えることはできますか
  • デフォルトのXMLシリアライザーを、XSD制限を適切にサポートする別のサードパーティのシリアライザーに置き換えることはできますか?

考え?

4

1 に答える 1

0

ビルトインの WCF で生成された WSDLは、この非常に優れたブログ投稿で行ったことに沿って何かを行うことで置き換えることができます。その投稿は、単一の「フラット」WSDL ドキュメントを作成する代わりに、XSD の組み込み参照を生成するデフォルトの WCF 動作をオーバーライドする方法を示しています。

私が見る問題は、このプロセスの追加の XSD 制限を伝える方法が必要なことです。SOAP デシリアライゼーション プロセスで XSD に厳密に準拠するには、組み込みの XML シリアライザーも置き換える必要があることを認識しておいてください。これが、目的を達成する唯一の方法だからです。WCF に対して行う必要があるすべての詳細なカスタマイズを考えると、実際には独自のカスタム SOAP スタックを展開することを検討する必要があるかもしれません。これを行う他の .NET フレームワーク (Microsoft またはサード パーティ) については知りません。

于 2013-01-31T21:25:44.833 に答える