2016-09-12 7 views
0

Я добавляю опциональный параметр в Мой ClassLibraryДобавление Дополнительный параметр в ClassLibrary Не Обеспечение BackWord совместимость

Пример

public static string GetData(string name, string surname, bool status = false){} 

И Моя страница ASPX звонит метод

GetData(string name, string surname) 

Я просто перестроен ClassLibrary И не страница ASP. Затем он отклонил ошибку Метод не найден

Помогите как сохранить обратную совместимость? означает, что если я переписываю только классную библиотеку, то это не должно влиять на мою страницу ASP. Я ма с использованием .NET версии 4

Спасибо

+2

Создайте перегрузку с дополнительным параметром, а не с помощью необязательного параметра. – Joe

+1

У этого вопроса есть вопрос, почему это не работает: http://stackoverflow.com/questions/7516256/is-using-optional-parameters-for-backwards-compatibility-a-good-idea?rq=1 – AsheraH

+0

@AsheraH: Я прочитал вышеприведенный комментарий, но не понял, почему он создает проблему и как ее преодолеть – Akshay

ответ

1

Если вы действительно хотите бинарную совместимость, то да, вы не можете добавить еще необязательный параметр. То, что вы можете сделать, это добавить перегрузку:

Перед:

public static string GetData(string name, string surname) 
{ 
    // Real code 
} 

После:

public static string GetData(string name, string surname) 
{ 
    return GetData(name, surname, false); 
} 

public static string GetData(string name, string surname, bool status) 
{ 
    // Real code 
} 

Обратите внимание, что вы могли сделать status по желанию, но не будет много поскольку любые вызывающие абоненты, не предоставляющие аргумент, в конечном итоге будут вызывать двухпараметрическую версию. Если бы вы добавляли более одного параметра, это имело бы смысл.

Возможно, вам захочется рассмотреть вопрос о том, можете ли вы жить с «перестройкой совместимости», то есть «все в порядке, если я перестрою». Строгая обратная совместимость может быть очень ограничительной - в наши дни просто отбрасывание нового двоичного файла в встроенное приложение относительно редко по сравнению с приобретением новой версии пакета при создании.

 Смежные вопросы

  • Нет связанных вопросов^_^