Можете ли вы перехватить создание объекта сообщения WCF? (Сторона сервера) - PullRequest
2 голосов
/ 17 февраля 2011

Если у меня есть служба WCF с открытым методом, например:

DoSomething(MyMessage msg)

Могу ли я перехватить создание параметра для вызова метода или изменить способ его создания?

Изменить (для контекста): Я знаю, что это запах кода, поэтому этот вопрос скорее из любопытства, чем что-либо еще, но представьте, что мы хотели использовать Unity для выполнения инжекции в конструктор в сообщении на сервере после получения сообщения. Вот почему я хочу перехватить создание сообщения - использовать Unity для его создания.

Ответы [ 3 ]

3 голосов
/ 17 февраля 2011

Эта веб-страница здесь содержит огромный длинный список примеров расширяемости WCF.

Если вы правильно поняли ваш вопрос, вы хотите иметь возможность обрабатывать вызов сообщения в службеclass - посмотрите этот пример здесь: Операция Formatter и Selector и IDispatchOperationSelector интерфейс

0 голосов
/ 17 февраля 2011

В дополнение к точкам расширяемости, упомянутым marc_s, вы можете также рассмотреть точку расширяемости IOperationInvoker. В зависимости от того, что именно вы пытаетесь сделать со своим параметром, это может лучше или проще соответствовать требованиям.

0 голосов
/ 17 февраля 2011

Можно реализовать инспектор параметров для проверки параметров перед отправкой сообщения в службу.

Ключом к реализации инспектора параметров является реализация интерфейса IParameterInspector. Этот интерфейс содержит два метода: BeforeCall и AfterCall. Подпись для этих методов следующая:

void AfterCall(string operationName, object[] outputs, object returnValue, object
correlationState);

object BeforeCall(string operationName, object[] inputs);

В обоих случаях параметры, отправленные методу, представляются этим методам в виде массива объектов. Однако их положение в конвейере зависит от того, вставлен ли инспектор на стороне клиента или на стороне обслуживания. Для получения дополнительной информации, пожалуйста, смотрите ссылку ниже:

Как: проверить или изменить параметры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...