Всем привет!
Есть WCF клиент/сервис, вполне себе работающий...
Клиент отправляет сервису примерно такой запрос:
[DataContract]
public class AttachSessionRequest
{
[DataMember]
public SessionType SessionType;
[DataMember]
public bool Always;
}
Создается такое сообщение:
<s:Header>
<a:Action s:mustUnderstand="1">http://tempuri.org/ISessionService/AttachSession</a:Action>
...
</s:Header>
<s:Body>
<AttachSession xmlns="http://tempuri.org/">
<attachSessionRequest xmlns:d4p1="http://schemas.datacontract.org/2004/07/SessionServiceInterface" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<d4p1:Always>false</d4p1:Always>
<d4p1:SessionType>Portable</d4p1:SessionType>
</attachSessionRequest>
</AttachSession>
</s:Body>
Запрос почему-то оборачивается в "Action" и все это работает
Пытаюсь сделать кастомную сериализацию
return Message.CreateMessage(messageVersion, _action, serializationObject, xmlObjectSerializer)
и запрос отправляется примерно такой:
<s:Header>
<a:Action s:mustUnderstand="1">http://tempuri.org/ISessionService/AttachSession</a:Action>
....
</s:Header>
<s:Body>
<AttachSessionRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/SessionServiceInterface">
<Always>false</Always>
<SessionType>Portable</SessionType>
</AttachSessionRequest>
</s:Body>
Т.е., запрос не оборачивается в "Action" и сервер ругается, т.к. не находит ноду <AttachSession>
Вопрос — от чего зависит, будет ли помещено тело запроса внутри тэгов Action?
И что за странные префиксы "
d4p1:" в исходном запросе?
Спасибо...