我希望修改入站WCF消息中的所有字符串,这样我就不必担心在我的所有操作中修剪它们。我可以通过IParameterInspector
和许多精巧的反射逻辑来实现这一点,但似乎必须有更好的方法。
我尝试过使用IDataContractSurrogate
,但GetDeserializedObject
没有调用字符串反序列化。
是否有另一种方法可以挂钩DataContractSerializer,这样我就可以修改字符串而无需大量反射?
答案 0 :(得分:0)
您可以通过实现IXMLSerializable来实现此目的。完成此question。当然,您需要实现ReadXml操作。
什么阻止你在检查参数的同时施放物体并更新它?
如果您认为特定的.Net消费者使用该服务,您可以创建一个wcf服务客户端,向其添加修剪逻辑并进行分发(以便消费者可以直接使用客户端而不是创建代理您的服务)。一方面影响是你必须在合同发生变化时重新分配客户端dll。