在Visual Studio 2005中添加Web引用时,我注意到wdsl中的每个元素都是重复的。例如。对于元素ItemOne
,它生成的接口包含ItemOne
和itemOneField
。两者都是一样的,但一个是成员,另一个是领域。我怀疑这个领域只是该成员的吸气剂。
我可以想象使用一个字段代替一个成员......但在这种情况下,我的倾向是将成员设为私有,以避免混乱。尽管将这样的成员设为私有的正常动机是隐藏实现细节,但这显然不适用于这种情况。
我意识到现在改变它可能会引入兼容性问题,但我不明白他们为什么第一次这样做。
请勿指出此类更改会导致与以前版本的VS的兼容性问题。我对此背后的原始推理感兴趣。
答案 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”,然后是方法......