【问题标题】:What determines the order of methods in WCF Test Client?什么决定了 WCF 测试客户端中方法的顺序?
【发布时间】:2015-03-19 17:35:51
【问题描述】:

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

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

但这并不是完全随机的。 sometimes 的顺序与班级相匹配。但是您可以更改类中的顺序,重新编译,当您将服务添加回 WCF 测试客户端时,它不会更改为匹配。

那么是什么决定了顺序呢?

【问题讨论】:

  • 为什么需要它?你能解释一下吗?
  • 如果您只是想在操作列表中找到某种服务方法,您可以type the name of the method
  • 我最初的目标只是找到一种重新订购它们的方法,这样我组织中的其他人就可以更轻松地找到解决大型服务的方法。在发现订单不可塑之后,我想知道为什么。输入名称很有帮助,但我主要想知道是什么驱动了订单/缺少订单。

标签: .net wcf wcftestclient


【解决方案1】:

出于好奇,我查看了 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 方法不按特定顺序返回方法, 例如字母顺序或声明顺序。你的代码不能依赖 方法返回的顺序,因为顺序不同。

这就是我能找到的全部:)

【讨论】:

  • 哇,这听起来像是答案。这可以解释为什么它通常遵循合同顺序,但有时似乎遵守自己的顺序:CLR 发现无论出于何种原因重新组织某些方法都是有效的。
猜你喜欢
  • 2015-01-08
  • 1970-01-01
  • 2012-06-17
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
相关资源
最近更新 更多