我正在使用一种方法(操作)设置一个新的.NET 4.0 WCF服务,该方法将强类型XSD生成的数据类型作为参数.这使得客户端的内容干净整洁 - 客户端可以使用强类型而不必考虑XML.
但是,在WCF服务的实现中,我更愿意将参数数据作为XML文档(LINQ XDocument)而不是反序列化的对象类型来处理.WCF将反序列化为显式类型很好,但对于我的通用算法,处理xml文档更方便,更灵活,主要是因为传入的数据是多态的.
我知道我可以只使用参数对象并将它们序列化为XML,但这看起来很浪费.
我知道我可以用XElement替换强类型的params以获得我想要的实现方便,但这将失去客户端强类型(编译器检查,intellisense,自我文档)的好处.
有没有办法告诉WCF在我的服务实现中我不需要反序列化的参数对象,我想要它们作为XML而不是?
或者,有没有办法访问params的原始XML,因为它们在WCF反序列化为对象之前?如果我无法阻止WCF花时间反序列化对象,至少可以避免将它们重新序列化回XML的成本.
实现此目的的一种方法是创建一个消息检查器,该检查器将检查服务器上传入的消息并对其进行操作(例如将其存储起来或进行其他操作)。
Pablo Pialorsi 有一篇很棒的博客文章,介绍了如何逐步编写消息检查器
检查消息将使您能够访问原始 SOAP 消息格式的参数。
我认为参数检查器可能是更好的选择,但似乎这些检查器只有在这些参数已经被反序列化为对象后才可以处理任何服务调用的参数,因此这听起来不太可行方法....
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           404 次  |  
        
|   最近记录:  |