如何在运行时获取WCF操作使用的数据序列化程序

时间:2009-12-03 08:22:52

标签: wcf datacontractserializer

是否有机会在运行时(例如使用操作行为)获取操作(DataContractSerializer / NetDataContractSerializer / XmlSerializer等)使用的数据协定序列化程序。我想要实现的是创建一些诊断代码,使用当前连接的序列化程序来序列化消息(在消息检查器中)以比较结果。

谢谢,Pawel

1 个答案:

答案 0 :(得分:0)

看一下在服务端创建消息检查器。从那里你可以获取消息并检查其编码器。编码器会告诉你它的序列化方式。这不是工作代码,但它会是这样的:IDispatchMessageInspector.AfterReceiveRequest( ref Message request....){ if ( request.MessageEncoder is typeof(BinaryMessageEncoder) //do stuff.....}