Помимо того, что у класса действительно плохое имя (поскольку он уже используется во время выполнения WCF), у вашего Message
класса также есть некоторые недостатки:
<Message>
<Messagehead>
....
</Messagehead>
Ваш <Messagehead>
имеет в нижнем регистре h
в середине - но ваш класс определяет его в верхнем регистре:
[DataContract(Namespace = "")]
public class Message
{
[DataMember]
public MessageHead MessageHead { get; set; }
Это будет не работать - случай важен и актуален в сообщении WCF! Если ваш XML имеет строчную букву h
, то и ваш DataContract
класс!
Ваш XML также требует тега <Raw>
внутри вашего <MessageBody>
<MessageBody>
<Raw>
<![CDATA[OriginalMessageContent]]>
</Raw>
</MessageBody>
но ваш контракт на данные не учитывает это:
public class MessageBody
{
public string RawRequestContent { get; set; }
}
Опять же - они не выстраиваются в очередь! Имена важны - и они должны совпадать между вашим XML-представлением сообщения и классом C #, представляющим это сообщение .....