3

WCF テスト クライアントは、メソッドを論理的な順序で配置していないようです。ただし、順序は一貫しています。どの環境でも同じです。

アルファベット順ではありません。クラス内のメソッドの順序ではありません。WCF テスト クライアントの順序が WSDL の順序と一致しません。

ただし、完全にランダムではありません。クラスによって順番が合うこともあります。ただし、クラス内の順序を変更して再コンパイルすると、サービスを WCF テスト クライアントに追加し直しても、一致するように変更されません。

では、何が順番を決めるのでしょうか?

4

1 に答える 1

5

好奇心のために、WcfClientTest.exe のソース コードを調べて、順序を調べました。

次のコードは、おそらくすべてのメソッドが設定されている場所です (免責事項: 推測しただけです! これを確認する時間はありません)。

endpoint.ClientTypeName = GetContractTypeName(contractType);
foreach (MethodInfo info in contractType.GetMethods())
{

では、GetMethods が返すメソッドの順序は何ですか? この MSDN リンクによると: https://msdn.microsoft.com/en-us/library/4d848zkb(v=vs.110).aspx

GetMethods メソッドは、アルファベット順や宣言順など、特定の順序でメソッドを返すわけではありません。メソッドが返される順序はさまざまであるため、コードはその順序に依存してはなりません。

それが私が知ることができるすべてです:)

于 2015-04-06T11:44:45.463 に答える