【发布时间】:2010-09-20 08:26:41
【问题描述】:
(如果这里有什么需要澄清/更多细节,请告诉我。)
我有一个使用 SOAP 与第三方 Web 服务交互的应用程序(C#,2.* 框架)。我针对提供的 WSDL 使用 thinktecture 的 WSCF 插件来创建客户端实现。由于我无法控制的原因,SOAP 消息交换使用 WSE2.0 来保证安全性(必须修改 Thinctecture 实现以包含 WSE2.0 参考)。除了“普通”数据包之外,我还附加了一个存储的 X509 证书和一个来自先前调用不同 Web 服务的二进制安全令牌。我们正在使用某种 SSL 加密——我不知道细节。
所有必要的序列化/反序列化都包含在 Web 服务客户端中——这意味着在调用客户端后将控制权返回给我时,我无法使用 SOAP 响应中包含的整个 XML 字符串——只有反序列化的组件。不要误会 - 我认为这很好,因为这意味着我不必自己做。
但是,为了让我有一些值得存储/存档的东西,我必须在根元素处重新序列化数据。这似乎是一种资源浪费,因为我的结果是在 SOAP 响应中。
现在我的问题是: 如何访问 SOAP 响应的“清晰”版本,这样我就不必重新序列化所有内容以进行存储/归档?
编辑 - 我的应用程序是一个“无格式”的 Windows 应用程序,作为网络服务运行 - 由 WebsphereMQ 客户端触发器监视器触发。我不认为 ASP.NET 解决方案会适用。
编辑 - 由于目前的共识是我的应用程序是否是 ASP.NET 并不重要,所以我将尝试 CodeMelt(以及扩展 Chris 的)解决方案。
【问题讨论】:
标签: c# xml web-services soap wse2.0