WCF 测试客户端似乎没有按任何逻辑顺序放置方法。但是,顺序是一致的。它在每个环境中都保持不变。
它不是按字母顺序排列的。这不是类中方法的顺序。WCF 测试客户端中的顺序与 WSDL 中的顺序不匹配。
但这并不是完全随机的。顺序有时与班级相匹配。但是您可以更改类中的顺序,重新编译,当您将服务添加回 WCF 测试客户端时,它不会更改为匹配。
那么是什么决定了顺序呢?
WCF 测试客户端似乎没有按任何逻辑顺序放置方法。但是,顺序是一致的。它在每个环境中都保持不变。
它不是按字母顺序排列的。这不是类中方法的顺序。WCF 测试客户端中的顺序与 WSDL 中的顺序不匹配。
但这并不是完全随机的。顺序有时与班级相匹配。但是您可以更改类中的顺序,重新编译,当您将服务添加回 WCF 测试客户端时,它不会更改为匹配。
那么是什么决定了顺序呢?
出于好奇,我查看了 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 方法不按特定顺序返回方法,例如字母顺序或声明顺序。您的代码不能依赖于返回方法的顺序,因为该顺序会有所不同。
这就是我能找到的全部:)