Необязательные параметры являются специфической функцией .NET - службы WCF по своей природе совместимы, поэтому вы не можете полагаться на специфику .NET.
Все, что вы обмениваетесь в WCF, основано на XML-схеме и WSDL. Насколько я знаю, WSDL не поддерживает дополнительные параметры. WCF и лежащие в его основе сантехнические системы не знают об этих вещах, поэтому их нельзя использовать в службах WCF.
Вам нужно будет найти способ жить без дополнительных параметров в вызовах службы WCF.
Есть несколько дополнительных вещей, которые WCF / SOA не очень хорошо выполняют, которые полностью подходят для OOP / .NET - такие как перегрузка операторов, интерфейсы, универсальные шаблоны и т. Д. - вы всегда должны учитывать, что WCF разработана для взаимодействия с SOA-платформой, например он должен быть в состоянии общаться с другими языками и системами, такими как PHP, Ruby и т. д., и некоторые из них не поддерживают все тонкости .NET.
SOA и OOP иногда расходятся - это просто факт жизни. Если вы хотите использовать SOA и WCF (и я бы настойчиво отстаивал этот подход), вы должны быть готовы «сделать это так, как SOA» - даже если это противоречит тому, что вы могли бы сделать в .NET и что ООП практика может предложить.