X-Evgenius
13-11-2010, 15:30
Доброго времени суток.
Подскажите, плз, как можно ГИБКО управлять содержимым заголовка (header) сообщения soap, при использовании прокси-класса, наследующего от SoapHttpClientProtocol.
Стандартный путь (установка содержимого с помощью члена прокси-класса типа SoapHeader и атрибута System.Web.Services.Protocols.SoapHeader) мне известен.
Проблема в том, что
способ с членом прокси-класса типа SoapHeader позволяет поместить свои элементы внутри основного элемента, имя к-рого будет совпадать с именем члена прокси-класса,
а служба ожидает эти элементы прямо в внутри тега <soap:Header>/
Подсказывали, что можно реализовать в классе-наследнике SoapHeader интерфейс IXmlSerializable, и с его помощью реализовать сериализацию без корневого элемента.
Только вот как убить корневой элемент - неясно.
Если указать атрибут XmlRoot для класса вот так
[XmlRoot(ElementName:="")]
- корневым элементом остается <Имя члена прокси-класса>
Спасибо.
Подскажите, плз, как можно ГИБКО управлять содержимым заголовка (header) сообщения soap, при использовании прокси-класса, наследующего от SoapHttpClientProtocol.
Стандартный путь (установка содержимого с помощью члена прокси-класса типа SoapHeader и атрибута System.Web.Services.Protocols.SoapHeader) мне известен.
Проблема в том, что
способ с членом прокси-класса типа SoapHeader позволяет поместить свои элементы внутри основного элемента, имя к-рого будет совпадать с именем члена прокси-класса,
а служба ожидает эти элементы прямо в внутри тега <soap:Header>/
Подсказывали, что можно реализовать в классе-наследнике SoapHeader интерфейс IXmlSerializable, и с его помощью реализовать сериализацию без корневого элемента.
Только вот как убить корневой элемент - неясно.
Если указать атрибут XmlRoot для класса вот так
[XmlRoot(ElementName:="")]
- корневым элементом остается <Имя члена прокси-класса>
Спасибо.