Службы WCF 3.5 с пакетом обновления 1 (SP1) / Вызывается из Silverlight 4
В ситуации, когда поставщик создал API-интерфейс WCF, как службы svc, так и пользовательский прокси-клиент.
Оба аспектаэтого API сидят поверх основной четырехслойной абстракции.
Сначала существуют два абстрактных класса MessageContract: WcfRequest и WcfResponse.
Абстрактный тип WcfRequest содержит свойства, украшенные атрибутом MessageHeader, и содержит такие вещи, как настраиваемый идентификатор аутентификации и часовой пояс.
Затем существует второй слой лука, где каждый метод разделенна два класса: GetSomethingRequest и GetSomethingResponse, оба из которых наследуются от WcfRequest и WcfReponse, соответственно.
Далее идет уровень реализации, где типы, основанные на WcfRequest и WcfResponse, всплывают и вызываются пользовательским типом WcfClient,который контролирует всю конструкцию ChannelFactory, устанавливает привязку и, самое главное, устанавливает заголовок идентификатора в типе WcfRequest на основе ранее установленного значения в памяти (например, ключа сеанса).
Наконец, выводится представлениеВ другом мире, где вы запрашиваете типы POCO через значения id.
Теперь API написан таким образом, что, если я использую прокси, предоставленный поставщиком, все будет работать так, как ожидается - аутентификация происходит, и этот идентификатор устанавливается, и тогда я могу без проблем вызвать вызов метода,
Если вы сделали это далеко, спасибо, что остались со мной.
Теперь проблема возникает, когда я хочу написать клиент Silverlight, используя либо «Добавить ссылку на службу», либо SLSvcUtil.ни один из сгенерированных типов прокси-клиентов не имеет этих свойств заголовка из заголовка WcfRequest для установки и не определяется в прототипе сообщения как параметры для передачи.
Чтобы установить эти заголовки, я посмотрел наWCFExtras проект на Codeplex и пытался использовать подпрограммы ClientSoapHeaderHelper, но это не работает для Silverlight (без возможности расширения).
Я попытался заглянуть в OperationContext - чтобы посмотреть, смогу ли я установить заголовоктам, но это ноль - по крайней мере, если я проверю его в методе прокси-клиента.
Вы человек, который знает, как вручную (взломать) эти заголовки на место?
Спасибо за любыепомощь ... но полностью понимаю, если это не получит хитов.