是否有机会在运行时(例如使用操作行为)获取操作(DataContractSerializer/NetDataContractSerializer/XmlSerializer等)使用的数据协定序列化程序。我要实现的是创建一些诊断代码,这些代码将使用当前附加的序列化程序对消息(在消息检查器中)进行序列化以比较结果。
谢谢,帕维尔
看看在服务端创建一个消息检查器。从那里你可以抓取信息并检查它的编码器。编码器会告诉你它是如何序列化的。这不是有效的代码,但它会像这样: IDispatchMessageInspector.AfterReceiveRequest( ref Message request....){ if ( request.MessageEncoder is typeof(BinaryMessageEncoder) //do stuff.....}
IDispatchMessageInspector.AfterReceiveRequest( ref Message request....){ if ( request.MessageEncoder is typeof(BinaryMessageEncoder) //do stuff.....}