我想修剪入站 WCF 消息中的所有字符串,这样我就不必担心在所有操作中修剪它们。我可以通过IParameterInspector
很多微妙的反射逻辑来实现这一点,但似乎必须有更好的方法。
我曾尝试使用IDataContractSurrogate
,但GetDeserializedObject
不会调用字符串反序列化。
是否有另一种方法可以连接到 DataContractSerializer 让我修改字符串而无需大量反射?
我想修剪入站 WCF 消息中的所有字符串,这样我就不必担心在所有操作中修剪它们。我可以通过IParameterInspector
很多微妙的反射逻辑来实现这一点,但似乎必须有更好的方法。
我曾尝试使用IDataContractSurrogate
,但GetDeserializedObject
不会调用字符串反序列化。
是否有另一种方法可以连接到 DataContractSerializer 让我修改字符串而无需大量反射?
您可以通过实现 IXMLSerializable 来做到这一点。通过这个问题。当然,您需要实现 ReadXml 操作。
是什么阻止您在检查参数时投射对象并更新它?
如果您认为该服务由特定的 .Net 消费者使用,您可以创建一个 wcf 服务客户端,将您的修剪逻辑添加到它并分发它(以便消费者可以直接使用客户端,而不是为您的服务创建代理)。这样做的一个副作用是,每当合同发生变化时,您都必须重新分发客户端 dll。