На самом деле, если вы следуете первому контракту, вы должны сначала сгенерировать свои «Сообщения».
В классических веб-сервисах вы фактически начинаете с XSD для своих запросов и ответов. Затем сгенерируйте код из XSD, чтобы гарантировать, что ваши типы данных совместимы с SOAP. К счастью, DataContractSerializer стал очень умным и позаботится о ваших типах данных.
Имея это в виду, вы должны сначала сгенерировать свой Сервисный контракт (ы) и сообщения Запрос / Ответ (Контракты с данными). Когда вы предоставляете конечную точку mex в WCF, для вас будет создан ваш WSDL. Создание собственного WSDL может быть очень сложным, и единственная причина, по которой вы должны попытаться сделать это, - это если вы действительно хотите скрыть функциональность от определенных потребителей. Даже если вы захотите сгенерировать свой собственный WSDL по этой причине, вам все равно будет проще позволить WCF создать его для вас, а затем изменить его, как вы считаете нужным.
Давайте остановимся здесь и посмотрим, есть ли у вас дополнительные вопросы.