Мы уже давно решаем эту проблему и находим только половину полезных решений.
Наш основной метод в приложении веб-службы, называемый "MainVoid", должен иметь дополнительный параметр, например:
MainVoid (до):
public void MainVoid (string Parameter1, int Parameter2, bool Parameter 3)
Into (MainVoid (до))):
public void Main Void (string Parameter1, int Parameter2, bool Parameter 3, int Parameter4)
У нас есть несколько приложений, которые использовали эту пустоту, но мы не хотим перестраивать / переиздавать все.Идеальным сценарием было бы то, что старые приложения вызывали бы void с одним параметром меньше, тогда как «новые» приложения могли бы иметь то же значение void, но с одним параметром больше.
Как я знаю, к сожалению, использование необязательных параметров невозможно вWCF, который является довольно большой проблемой.
Затем мы попытались перегрузить функции ниже
[OperationContract]
С похожим подходом к этому: методы перегрузки в веб-сервисе
Отладка веб-службы работает нормально (если параметр не передается, то вставляется значение по умолчанию для необязательного параметра).В другом проекте, который вызывает WebService, Intellisense находит перегруженные методы (он предлагает 2 варианта вместо одного).
Но когда мы запускаем debug в приложении, которое вызывает веб-сервис, отладчик хочет все параметры, поэтому он выдаетошибка.
Извините за такой длинный пост, но я попытался объяснить нашу проблему как можно лучше.Второй подход требует изменения ссылочных файлов в других проектах, поэтому это не желаемое решение.
Угадаете, что нет другого способа, кроме создания 2 пустот с другим именем?