Я пишу простой сервис wcf, который отправляет запрос на какой-то шлюз для обработки.
Запрос выполняется, выполняя что-то вроде этого:
Я пишу сервис WCF, который отправляет запрос в какой-то сервис, который ожидает получить что-то вроде этого:
gatewayService.SendRequest(request);
где gatewayService - прокси WCF, а запрос - мой собственный объект, который наследует объект сообщения WCF.
Объект запроса имеет несколько свойств, таких как:
[MessageBodyMember]
public ReportCommandLineRequest ReportRequest { get; set; }
[MessageBodyMember]
public ImportCommandLineRequest ImportRequest { get; set; }
Моя проблема в том, что этот объект запроса сериализуется. На стороне сервера я получаю большое мыльное сообщение, которое выглядит так:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:a="http://www.w3.org/2005/08/addressing">
<s:Header>
<a:Action s:mustUnderstand="1">http://tempuri.org/IReportClient/RunReport/IGatewayAdapter/SendRequest</a:Action>
<VsDebuggerCausalityData xmlns="http://schemas.microsoft.com/vstudio/diagnostics/servicemodelsink">uIDPo4jiWNjcsdxHiUhlOA63xYEAAAAApgt+BuVvcEixP33+yOQTgRHZQSyr4L5ImMHVeEWLFBMACQAA</VsDebuggerCausalityData>
<a:To s:mustUnderstand="1">net.tems://localhost:7222/queue/LB.FIA.Gateway.STAGE.InputQueue</a:To>
</s:Header>
<s:Body>
<SendRequest xmlns="http://tempuri.org/IReportClient/RunReport">
<request xmlns:b="http://schemas.datacontract.org/2004/07....
С другой стороны, я ожидаю, что на стороне сервера получит только сериализацию свойств, перечисленных выше (ReportRequest / ImportRequest), и надеется получить сериализованный xml, который выглядит так (без всего мусора внутри:
<ReportCommandLineRequest>
<outputFileName>gatewayReportOutput-01082010-150043.pdf</outputFileName>
<CommandLineArg
name="format"
..
</ReportCommandLineRequest>
Может кто-нибудь помочь мне выяснить, как я могу это сделать?
Спасибо.