Я читал, что в WCF можно определить свой собственный контракт на сообщения, чтобы получить полный контроль над сообщением SOAP. Когда это будет необходимо и как это будет сделано?
Документация по руководству по программированию Microsoft дает хороший обзор.