title: Why is Add Service Reference not generating the same code in UWP?
body: <p>I am trying to call FedEx's rate service. On their sample app, their reference.cs implements RateService():</p>
  
  <pre><code>amespace RateWebServiceClient.RateServiceWebReference {
  using System;
  using System.Web.Services;
  using System.Diagnostics;
  using System.Web.Services.Protocols;
  using System.Xml.Serialization;
  using System.ComponentModel;
  
  
  /// &lt;remarks/&gt;
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "4.6.1038.0")]
  [System.Diagnostics.DebuggerStepThroughAttribute()]
  [System.ComponentModel.DesignerCategoryAttribute("code")]
  [System.Web.Services.WebServiceBindingAttribute(Name="RateServiceSoapBinding", Namespace="http://fedex.com/ws/rate/v22")]
  public partial class RateService : System.Web.Services.Protocols.SoapHttpClientProtocol {
  
      private System.Threading.SendOrPostCallback getRatesOperationCompleted;
  
      private bool useDefaultCredentialsSetExplicitly;
  
      /// &lt;remarks/&gt;
      public RateService() {
          this.Url = "https://wsbeta.fedex.com:443/web-services/rate";
          if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
              this.UseDefaultCredentials = true;
              this.useDefaultCredentialsSetExplicitly = false;
          }
          else {
              this.useDefaultCredentialsSetExplicitly = true;
          }
      }
  </code></pre>
  
  <p>When I generate it on my project, I get completely different code. I noticed I never saw the old fashion web services option.</p>
  
  <pre><code>//------------------------------------------------------------------------------
  // &lt;auto-generated&gt;
  //     This code was generated by a tool. 
  //     Runtime Version:4.0.30319.42000
  //
  //     Changes to this file may cause incorrect behavior and will be lost if
  //     the code is regenerated.
  // &lt;/auto-generated&gt;
  //---------------------------------------------------------------------------- 
  // 
  // This code was auto-generated by   Microsoft.VisualStudio.ServiceReference.Platforms, version 15.0.26919.1
  // namespace Carriers.FedExServiceReference {   
  
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
  [System.ServiceModel.ServiceContractAttribute(Namespace="http://fedex.com/ws/rate/v22", ConfigurationName="FedExServiceReference.RatePortType")]
  public interface RatePortType {
  
      [System.ServiceModel.OperationContractAttribute(Action="http://fedex.com/ws/rate/v22/getRates", ReplyAction="*")]
      [System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
      System.Threading.Tasks.Task&lt;Carriers.FedExServiceReference.getRatesResponse&gt; getRatesAsync(Carriers.FedExServiceReference.getRatesRequest request);
  }
  
  /// &lt;remarks/&gt;
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2556.0")]
  [System.Diagnostics.DebuggerStepThroughAttribute()]
  [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://fedex.com/ws/rate/v22")]
  public partial class RateRequest : object, System.ComponentModel.INotifyPropertyChanged {
  
      private WebAuthenticationDetail webAuthenticationDetailField;
  
      private ClientDetail clientDetailField;
  
      private TransactionDetail transactionDetailField;
  
      private VersionId versionField;
  
      private bool returnTransitAndCommitField;
  
      private bool returnTransitAndCommitFieldSpecified;
  
      private CarrierCodeType[] carrierCodesField;
  
      private ServiceOptionType[] variableOptionsField;
  
      private ConsolidationKey consolidationKeyField;
  
      private RequestedShipment requestedShipmentField;
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=0)]
      public WebAuthenticationDetail WebAuthenticationDetail {
          get {
              return this.webAuthenticationDetailField;
          }
          set {
              this.webAuthenticationDetailField = value;
              this.RaisePropertyChanged("WebAuthenticationDetail");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=1)]
      public ClientDetail ClientDetail {
          get {
              return this.clientDetailField;
          }
          set {
              this.clientDetailField = value;
              this.RaisePropertyChanged("ClientDetail");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=2)]
      public TransactionDetail TransactionDetail {
          get {
              return this.transactionDetailField;
          }
          set {
              this.transactionDetailField = value;
              this.RaisePropertyChanged("TransactionDetail");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=3)]
      public VersionId Version {
          get {
              return this.versionField;
          }
          set {
              this.versionField = value;
              this.RaisePropertyChanged("Version");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=4)]
      public bool ReturnTransitAndCommit {
          get {
              return this.returnTransitAndCommitField;
          }
          set {
              this.returnTransitAndCommitField = value;
              this.RaisePropertyChanged("ReturnTransitAndCommit");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlIgnoreAttribute()]
      public bool ReturnTransitAndCommitSpecified {
          get {
              return this.returnTransitAndCommitFieldSpecified;
          }
          set {
              this.returnTransitAndCommitFieldSpecified = value;
              this.RaisePropertyChanged("ReturnTransitAndCommitSpecified");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute("CarrierCodes", Order=5)]
      public CarrierCodeType[] CarrierCodes {
          get {
              return this.carrierCodesField;
          }
          set {
              this.carrierCodesField = value;
              this.RaisePropertyChanged("CarrierCodes");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute("VariableOptions", Order=6)]
      public ServiceOptionType[] VariableOptions {
          get {
              return this.variableOptionsField;
          }
          set {
              this.variableOptionsField = value;
              this.RaisePropertyChanged("VariableOptions");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=7)]
      public ConsolidationKey ConsolidationKey {
          get {
              return this.consolidationKeyField;
          }
          set {
              this.consolidationKeyField = value;
              this.RaisePropertyChanged("ConsolidationKey");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=8)]
      public RequestedShipment RequestedShipment {
          get {
              return this.requestedShipmentField;
          }
          set {
              this.requestedShipmentField = value;
              this.RaisePropertyChanged("RequestedShipment");
          }
      }
  
      public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
  
      protected void RaisePropertyChanged(string propertyName) {
          System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
          if ((propertyChanged != null)) {
              propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
          }
      }
  }
  
  /// &lt;remarks/&gt;
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2556.0")]
  [System.Diagnostics.DebuggerStepThroughAttribute()]
  [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://fedex.com/ws/rate/v22")]
  public partial class WebAuthenticationDetail : object, System.ComponentModel.INotifyPropertyChanged {
  
      private WebAuthenticationCredential parentCredentialField;
  
      private WebAuthenticationCredential userCredentialField;
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=0)]
      public WebAuthenticationCredential ParentCredential {
          get {
              return this.parentCredentialField;
          }
          set {
              this.parentCredentialField = value;
              this.RaisePropertyChanged("ParentCredential");
          }
      }
  
      /// &lt;remarks/&gt;
      [System.Xml.Serialization.XmlElementAttribute(Order=1)]
      public WebAuthenticationCredential UserCredential {
          get {
              return this.userCredentialField;
          }
          set {
              this.userCredentialField = value;
              this.RaisePropertyChanged("UserCredential");
          }
      }
  
      public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
  
      protected void RaisePropertyChanged(string propertyName) {
          System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
          if ((propertyChanged != null)) {
              propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
          }
      }
  }
  
  /// &lt;remarks/&gt;
  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2556.0")]
  [System.Diagnostics.DebuggerStepThroughAttribute()]
  </code></pre>
  
  <p>How do I use this newfangled code?  Why the change?</p>