Как посчитать количество вызовов WCF на клиенте? - PullRequest
3 голосов
/ 12 октября 2011

У меня есть большое количество различных клиентских классов WCF (наследование от ClientBase).

Я бы хотел зафиксировать имя метода и количество раз, которое этот метод вызывался каждый раз, когда используется такой клиент. Эта информация будет использоваться для настройки производительности.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Посмотрите точки расширяемости, определенные WCF. Карло сделал отличную серию здесь . Посмотрите конкретно на MessageInspector.

2 голосов
/ 12 октября 2011

Вам следует взглянуть на пространство имен System.ServiceModel.Dispatcher , поскольку оно предоставляет ряд интерфейсов, которые вы можете использовать для перехвата вызовов на стороне клиента (и сервера) для выполнения подсчета.

Обратите внимание, что большинство методов здесь работают на уровне Message;WCF на высоком уровне не знает о концепции методов, он отправляет сообщения, получает их, а затем обрабатывает их.

Однако, по большей части, из Message можно выяснить, что такое отображениедолжно быть и запишите это.

Как только вы реализуете соответствующий интерфейс диспетчера, вы просто подключите его к ClientBase<T> экземплярам .В интерфейсе диспетчера убедитесь, что у вас есть способ удержать исходного диспетчера (если вы идете по этому маршруту), чтобы вы могли переадресовывать свои вызовы соответствующим образом.

...