gpt4 book ai didi

.net - 包含无效字符的对象的 XML 序列化

转载 作者:行者123 更新时间:2023-12-04 17:42:13 25 4
gpt4 key购买 nike

我正在序列化一个包含字符串属性中的 HTML 数据的对象。

Dim Formatter As New Xml.Serialization.XmlSerializer(GetType(MyObject))
Dim fs As New FileStream(FilePath, FileMode.Create)
Formatter.Serialize(fs, Ob)
fs.Close()

但是当我将 XML 读回对象时:
Dim Formatter As New Xml.Serialization.XmlSerializer(GetType(MyObject))
Dim fs As New FileStream(FilePath, FileMode.Open)
Dim Ob = CType(Formatter.Deserialize(fs), MyObject)
fs.Close()

我收到此错误:
"'', hexadecimal value 0x14, is an invalid character. Line 395, position 22."

.NET 不应该防止这种错误,转义无效字符吗?

这里发生了什么,我该如何解决?

最佳答案

我将 XmlReaderSettings 属性 CheckCharacters 设置为 false。
如果您自己通过 XmlSerializer 序列化了数据,我只会建议这样做。如果它来自未知来源,那么这不是一个好主意。

public static T Deserialize<T>(string xml)
{
var xmlReaderSettings = new XmlReaderSettings() { CheckCharacters = false };

XmlReader xmlReader = XmlTextReader.Create(new StringReader(xml), xmlReaderSettings);
XmlSerializer xs = new XmlSerializer(typeof(T));

return (T)xs.Deserialize(xmlReader);
}

关于.net - 包含无效字符的对象的 XML 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1165966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com