是什么决定了 WCF 测试客户端中方法的顺序?

What determines the order of methods in WCF Test Client?

WCF 测试客户端似乎没有按任何逻辑顺序放置方法。但是,顺序是一致的。它在每个环境中都保持不变。

它不是按字母顺序排列的。这不是 class 中方法的顺序。 WCF 测试客户端中的顺序与 WSDL 中的顺序不匹配。

虽然这不是完全随机的。 有时 的顺序与 class 相匹配。但是您可以随后更改 class 中的顺序,重新编译,当您将服务添加回 WCF 测试客户端时,它不会更改以匹配。

那么决定顺序的是什么?

出于好奇,我查看了 WcfClientTest.exe 源代码以了解顺序是什么。

下面这段代码可能是所有方法的填充位置(免责声明:我只是猜到了!没时间验证):

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

那么GetMethodsreturns中的方法顺序是怎样的呢?根据这个 MSDN link:https://msdn.microsoft.com/en-us/library/4d848zkb(v=vs.110).aspx

The GetMethods method does not return methods in a particular order, such as alphabetical or declaration order. Your code must not depend on the order in which methods are returned, because that order varies.

我能查到的就这么多 :)