Как лучше всего обрабатывать добавление нового (необязательного) параметра в существующую операцию, не требуя от клиента обновления своего WSDL? Я не хочу обновлять пространство имен для описания новой версии контрактов на обслуживание, поскольку это должно быть обратно совместимо со старыми клиентами.
Должен ли я добавить новую операцию с новым параметром, как перегрузку? Или мне просто добавить параметр в существующую операцию?
Вот моя операция:
[OperationContract]
MyResponse GetData();
Должно ли это быть:
[OperationContract]
MyResponse GetData();
[OperationContract]
MyResponse GetData(string filter);
Или, проще, просто измените это на:
[OperationContract]
MyResponse GetData(string filter);
Последний вариант кажется наилучшим, и, согласно моему справочнику, " Влияние на клиента отсутствует. Новые параметры инициализируются в значениях по умолчанию в службе. " Является ли WCF инициализацией его так называется значением по умолчанию? Если да, то какое значение по умолчанию?