#wcf #wcf-binding #wcf-ria-services
#wcf #wcf-привязка #wcf-ria-services
Вопрос:
Я разработал демонстрационную службу WCF с BasicHttpBinding, и я получаю ответ WCF как коллега —
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<TestResponse xmlns="http://tempuri.org/">
<TestResult>hi Test</TestResult>
</TestResponse>
</s:Body>
</s:Envelope>
Но мне нужен ответ WCF в следующем формате-
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
-->><t:TestResponse xmlns:t="http://tempuri.org/">
<TestResult>hi Test</TestResult>
</TestResponse>
</s:Body>
</s:Envelope>
итак, что я могу сделать, чтобы получить этот ответ??
Комментарии:
1. …пишу
Generic Http Handler
… на самом деле ваш ответ даже не будет действительным xml …2. разве это не может быть достигнуто с помощью какой-либо конфигурации wcf??
Ответ №1:
Обратите внимание, что два полученных вами ответа не эквивалентны: в первом элемент <TestResult> находится в tempuri.org / пространство имен, в то время как во втором оно используется по умолчанию («») (вам также нужно будет добавить к TestResult префикс «t:», чтобы сохранить ту же семантику XML. Для достижения этой цели в WCF нет ничего, что могло бы сделать это из коробки, но вы можете изменить это самостоятельно, используя одну из многих точек расширения платформы. Взгляните на http://blogs.msdn.com/b/carlosfigueira/archive/2010/06/13/changing-prefixes-in-xml-responses.aspx который имеет дело именно с этим.