我要问并回答我自己的问题,我希望没人介意,但我认为这可能对其他人有用。
如果您设置的 ASP.NET Web 服务返回的对象包含对 XML 无效的字符,则在将对象序列化为 SOAP xml 并且客户端尝试反序列化该 xml 后,将会引发异常。
你如何解决这个问题?
为了解决这个问题,我使用 .NET 的 wsdl.exe 应用程序为我的 Web 服务生成了类文件。这很简单,在命令提示符下只需键入wsdl.exe <path to webservice>
生成之后我重载了该方法
protected XmlReader GetReaderForMessage(SoapClientMessage message, int bufferSize)
像这样
protected override XmlReader GetReaderForMessage(SoapClientMessage message, int bufferSize)
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.CheckCharacters = false;
return XmlTextReader.Create(message.Stream, settings);
}
这告诉 XmlTextReader 忽略它正在读取的 XML 文件的有效性。当我要立即反序列化它时,我没有理由关心 xml 是否有效。
希望这可以帮助遇到同样问题的人!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)