我有一個關於服務器上方法擴展後果的問題,我很感謝您是否幫助我。服務器方法中的額外參數
我們假設如下。 我有一個方法在服務器上的門面:
public void SaveSomeData(SomeDataEntity[] someDataEntities)
{
someDataLocator.SaveData(someDataEntities);
}
而從客戶喜歡叫它:
public void SaveSomeData(SomeDataEntity[] someDataEntities)
{
this.Invoke("SaveSomeData", new object[] { someDataEntities });
}
現在,我需要把它擴大到
public void SaveSomeData(SomeDataEntity[] someDataEntities, string mode)
{
someDataLocator.SaveData(someDataEntities, mode);
}
我需要提供向後兼容性。因此,如果用戶使用舊版本,並且他嘗試僅使用一個參數調用此方法,會發生什麼情況? 服務器會猜測這是同一個方法並調用它嗎?如果是,將「模式」字符串(第二個參數)爲空或空?或者它只會拋出一個異常,說客戶端試圖調用一個不存在的函數。是否有可能解決這個問題,而不用重複一個和兩個參數的方法。