title: Extra argument in a server method
body: <p>I have a question about consequences of extension of a method on the server and I appreciate if you help me.</p>
  
  <p>Let's suppose the following. 
  I have a method in a facade on the server:</p>
  
  <pre><code>public void SaveSomeData(SomeDataEntity[] someDataEntities)
  {
      someDataLocator.SaveData(someDataEntities);
  }
  </code></pre>
  
  <p>And call it from a client like:</p>
  
  <pre><code>public void SaveSomeData(SomeDataEntity[] someDataEntities) 
  {
      this.Invoke("SaveSomeData", new object[] { someDataEntities });
  }
  </code></pre>
  
  <p>Now, I need to extend it to </p>
  
  <pre><code>public void SaveSomeData(SomeDataEntity[] someDataEntities, string mode)
  {
      someDataLocator.SaveData(someDataEntities, mode);
  }
  </code></pre>
  
  <p>I need to provide a backward compatibility. So, if a user uses an old version and he tries to call this method with only single param, what will happen?
  Will server guess that this is the same method and call it? If yes, will "mode" string (second argument) be null or empty? Or it just will throw an exception saying that client tries to invoke an non-existing function. Is it possible to solve this problem without duplicating the method with both one and two arguments.</p>