为什么VS2005会为Web服务字段创建成员和字段?

时间:2009-06-15 13:41:26

标签: visual-studio web-services

在Visual Studio 2005中添加Web引用时,我注意到wdsl中的每个元素都是重复的。例如。对于元素ItemOne,它生成的接口包含ItemOneitemOneField。两者都是一样的,但一个是成员,另一个是领域。我怀疑这个领域只是该成员的吸气剂。

我可以想象使用一个字段代替一个成员......但在这种情况下,我的倾向是将成员设为私有,以避免混乱。尽管将这样的成员设为私有的正常动机是隐藏实现细节,但这显然不适用于这种情况。

我意识到现在改变它可能会引入兼容性问题,但我不明白他们为什么第一次这样做。

请勿指出此类更改会导致与以前版本的VS的兼容性问题。我对此背后的原始推理感兴趣。

2 个答案:

答案 0 :(得分:0)

这是一个有支持领域的财产。有什么问题?您是否期望它生成自动属性?它们直到最近才存在。为什么改变它的作用,特别是因为ASMX(和WSDL.EXE)是非常死的技术。

答案 1 :(得分:0)

  

“我对这背后的原始推理感兴趣”

作为过去3.0框架的一切,创建属性的唯一方法是拥有私有变量和属性名称

private string myItemField;

public string myItem() {
  get {
    return myItemField;
  }
  set {
    myItemField = value;
  }
}

但是现在,没有必要......

public string myItem { get; set; }

问题是,最后一个代码被编译为顶部的原始代码,即使它更容易编写,它以相同的旧方式编译,您最终会得到一个私有变量和一个属性。< / p>

添加Web引用时会发生同样的事情,它需要一个变量来保存“stuff”,然后是方法......