title: Implement IExtensibleDataObject by default on Proxy
body: <p>Whiel generating proxy class by using SVCUTIL.exe or By Adding service reference from VS, it inherits the IExtensibleDataObject to the data contract classes by default.</p>
  
  <p><strong>WCF data contract</strong></p>
  
  <pre><code>[DataContract]
  public class Employee
  {
      [DataMember(Order = 1)]
      public string Id { get; set; }
  }
  </code></pre>
  
  <p><strong>WCF Servcie</strong></p>
  
  <pre><code>public class Service1 : IService1
      {
          public Employee GetEmployeeById(Employee employee)
          {
              return employee;
          }
      }
  </code></pre>
  
  <p>Proxy Class generated by adding service reference from VS and Employee composite class in client side inherits IExtensibleDataObject interface by default even though i haven;'t implement this in service end.</p>
  
  <p><strong>Client side Employee Class</strong></p>
  
  <pre><code>[System.Diagnostics.DebuggerStepThroughAttribute()]
      [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
      [System.Runtime.Serialization.DataContractAttribute(Name="Employee", Namespace="http://schemas.datacontract.org/2004/07/WcfService1")]
      [System.SerializableAttribute()]
      public partial class Employee : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
  
          [System.NonSerializedAttribute()]
          private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
  
          [System.Runtime.Serialization.OptionalFieldAttribute()]
          private string IdField;
  
  
          [global::System.ComponentModel.BrowsableAttribute(false)]
          public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
              get {
                  return this.extensionDataField;
              }
              set {
                  this.extensionDataField = value;
              }
          }
  
          [System.Runtime.Serialization.DataMemberAttribute()]
          public string Id {
              get {
                  return this.IdField;
              }
              set {
                  if ((object.ReferenceEquals(this.IdField, value) != true)) {
                      this.IdField = value;
                      this.RaisePropertyChanged("Id");
                  }
              }
          }
  </code></pre>
  
  <p>Now the question is, While generating proxy from some other client (For ex: Java), will they implement IExtensibleDataObject interface by default? </p>