从 WCF 服务返回 XmlDocument 不起作用
我正在尝试更新一些返回字符串以返回 XmlDocument 对象的 WCF 服务方法。我尝试按原样返回它并将其封装在数据契约对象中。不管怎样,我在尝试更新服务引用时遇到了错误。该错误建议将其封装在带有我正在执行的操作合约的数据合约中。这有什么技巧吗?
I am trying to update some WCF service methods that return strings to return XmlDocument objects. I've tried returning it as-is and encapsulating it in a datacontract object. Either way I'm hitting an error upon attempting to update the service reference. The error suggest encapsulating it in a datacontract with an operations contract which I am doing. Is there a trick to this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有一种方法可以从 WCF 返回 XmlDocument,但您需要使用
XmlSerializer
而不是默认序列化程序 (DataContractSerialier
) - 下面的代码显示了如何完成它。话虽如此,请考虑使用注释中提到的数据传输对象,除非您的方案确实需要传输 XmlDocument。There's a way to return a XmlDocument from WCF, but you need to use the
XmlSerializer
instead of the default serializer (DataContractSerialier
) - the code below shows how it can be done. Having said that, do consider using data transfer objects as mentioned in the comments, unless your scenario really requires a XmlDocument to be transferred.如果您希望能够在线传递任意 XML,最好的方法是使用 XElement 而不是 XmlDocument
XmlDocument 不可序列化
If you want to be able to pass arbitrary XML on the wire the best way to do it is to use XElement rather than XmlDocument
XmlDocument isn't serializable