0

Web 参照を使用して Web サービスを使用しています。問題はオプションの decimal 属性にあり、その値は Web サービスに渡されません。デフォルト属性を追加してデフォルト値を指定しようとしまし たが、正常に動作しますが、wsdl を変更できません。なぜなら、それを使用している別のクライアント (php、java ... クライアント) があるためです。役職

したがって、Web 参照の作成後に生成されるプロキシ クラスのコードを変更する方法を見つけたいと考えています。これは、オプションの 10 進属性を誤って処理するこのクラスによって引き起こされるバグであると確信しているためです。

4

1 に答える 1

1

解決策 1:

  • プロジェクト フォルダー -> Web 参照 -> MyService に移動します。
  • そこには、Reference.cs というファイルが存在するはずです。これが作成されたファイルです。これには、Web サービスのプロキシ クラスが含まれています。

また、誤って参照を更新してファイルへの変更を削除したくない場合は、csproj ファイルの参照を更新します。プロジェクト ファイルの下部に、使用しているすべてのサービスへの URL があります。同じフォルダー内の WSDL をポイントします。

解決策 2:

  • プロジェクトにサービス参照を追加する
  • プロジェクト ファイルを変更し、サービスの URL を更新して、ソリューション 1 と同じフォルダー内の wsdl をポイントします。
  • 同じフォルダー内の wsdl に必要な変更を加えます。
  • VS で参照を更新します ... これにより新しい Reference.cs が作成されます ... プロキシ クラスが更新されます

注: WSDL に加えられた変更によっては、反対側の Web サービスがメッセージを「読み取る」ことができない場合があります。オプションの代わりに必須のプロパティを作成しても、それが壊れることはありません。

于 2013-07-22T20:07:54.210 に答える