Веб-Метод WCF, который Принимает Различные Типы сообщений

WCF Microsofts легок работать с тем, когда Вы создаете веб-сервисы, где каждое сообщение имеет свой собственный веб-метод. WCF генерирует весь WSDL, и все легко.

То, что я хочу сделать, имеют один веб-метод, который принимает несколько различных сообщений (я не хочу добавлять метод чайки каждый раз, когда я добавляю новый тип сообщения). Сами сообщения будут иметь информацию заголовка, которые определяют тип сообщения. После того как я знаю тип сообщения, я буду знать структуру остальной части сообщения.

Единственным путем я нашел, чтобы сделать, это с WCF должно иметь метод, принимают строку, в которой я анализирую как XML и и использование. Однако я не вижу ясного способа опубликовать различные типы сообщений в WSDL; таким образом целый сервис чрезвычайно не документирован.

Кто-либо знает о технике для использования в WCF?

1
задан Eric Farr 2 July 2010 в 13:54
поделиться

1 ответ

Вы можете написать контракт операции, который принимает любое сообщение, установив для Action значение * и заставив его принимать объект Message:

[ServiceContract]
public interface IMessageContract
{
    [OperationContract(Action = "*", ReplyAction = "*")]
    Message ProcessRequest(Message request);
}

Объект Message предоставляет вам доступ к заголовкам и имеет методы десериализовать тело.

Чтобы экспортировать собственный WSDL, вам необходимо реализовать IWsdlExportExtension в поведении контракта или операции и присоединить его к своей службе. Это даст вам доступ к WsdlExporter , и вы можете создать ContractDescription самостоятельно и вызвать ExportContract, чтобы он появился в сгенерированном WSDL.

2
ответ дан 2 September 2019 в 23:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: