代码之家  ›  专栏  ›  技术社区  ›  Brian

为什么vs2005同时为web服务字段创建成员和字段?

  •  0
  • Brian  · 技术社区  · 16 年前

    在visual studio 2005中添加web引用时,我注意到wdsl中的每个元素都是重复的。例如,对于元件 ItemOne ,它生成的接口包含 银莲花酮 itemOneField . 两者都是一样的,但一个是成员,另一个是字段。我怀疑这个领域对这个会员来说是个好消息。

    我可以想象使用一个字段而不是一个成员……但在这种情况下,我倾向于让成员私有,以避免混乱。尽管将这样一个成员私有化的通常动机是隐藏实现细节,但这显然不适用于本例。

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

    不要指出这样的更改会导致与以前版本的vs的兼容性问题。 我对 起初的 背后的原因。

    2 回复  |  直到 15 年前
        1
  •  0
  •   John Saunders    16 年前

    这是一个有背景的地方。怎么了?你希望它生成一个自动属性吗?它们直到最近才存在。为什么要改变工作方式,特别是因为asmx(和wsdl.exe)几乎是一种死技术。

        2
  •  0
  •   balexandre    16 年前

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

    与3.0框架一样,创建属性的唯一方法是使用私有变量和属性名

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

    但现在,没有必要…

    public string myItem { get; set; }
    

    问题是,最后这段代码被编译为最上面的原始代码,即使它更容易编写,它也是用同样的老方法编译的,最终会得到一个私有变量和一个属性。

    当你添加一个web引用时也会发生同样的事情,它需要一个变量来保存“stuff”,然后方法…