-1

私の知る限り:

別のアセンブリから呼び出されたパブリック メソッドに省略可能なパラメーターを追加するには、パラメーターが必須であるかのように、両方のアセンブリを再コンパイルする必要があります。

このコンテキストで WebService について疑問に思っていました。

私はどうadded optional param webservice methodですか?

例えば ​​:

Google の Web サービス メソッドは次のとおりです。

void DoWork(int a , int b)

そしてそれはに変更されました

void DoWork(int a , int b  , isDefault=false)
  • 消費者はプロキシ ファイルを再作成する必要がありますか?
4

1 に答える 1

3

私の理解では、オプションのパラメーターは構文糖衣です。

それでも、すべてのパラメーターを必須として受け取るオーバーロードが発生しますが、コンパイラーは、オプションのパラメーターが指定されていないメソッド呼び出しを検出すると、オプションのパラメーターのデフォルトをILの呼び出しサイトに自動的に挿入します。

これがWebサービスにどのように影響するかは、オプションのパラメーターがプロキシーを介してどのように伝播されるかによって異なります。

それがWSDLに対する重大な変更である場合、プロキシを再生成する必要がなく、既存のプロキシによって生成された要求は引き続き有効であるため、違いはないと思います。 WSDL契約の観点。

ただし、それがWSDLに対する重大な変更である場合は、明らかにプロキシを再生成する必要があり、プロキシメソッドへの呼び出しサイトを再コンパイルする必要があります。

于 2012-12-10T12:37:15.690 に答える