我有大量不同的WCF客户端类(继承自ClientBase
)。
我想捕获方法名称以及每次使用此类客户端时调用此方法的次数。此信息将用于性能调整。
有什么想法吗?
答案 0 :(得分:2)
您应该查看System.ServiceModel.Dispatcher
namespace,因为它提供了许多接口,您可以使用这些接口拦截客户端(和服务器)端的呼叫来执行计数。
请注意,此处的大多数方法都在Message
级别运行;高级别的WCF不了解方法的概念,它会调度消息,接收消息,然后处理它们。
但是,在大多数情况下,您可以从Message
中找出映射应该是什么并记录下来。
实施适当的调度程序界面后,您只需wire it up到ClientBase<T>
instances即可。在调度程序界面中,确保您有一种方法可以保留原始调度程序(如果您使用该路线),这样您就可以适当地转发呼叫。
答案 1 :(得分:2)
查看WCF定义的扩展点。卡罗的作品非常出色here。 请特别注意MessageInspector。