【发布时间】:2026-02-15 14:50:01
【问题描述】:
我想反序列化一个在其中一个字段中具有特殊字符的 xml 文件。该字符为十六进制 0x05,并导致 xml 文件为 。
我能够序列化对象,但无法再次反序列化它。
我经常使用这种技术,但这是第一次它不起作用。
这是问题的一个最小示例:
using System.Xml.Serialization;
using System.IO;
namespace XMLTest
{
class Program
{
static void Main(string[] args)
{
SpecialCharacter testobject = new SpecialCharacter();
string filename = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\testfile.xml";
//serialize
StreamWriter writer = System.IO.File.CreateText(filename);
XmlSerializer xmlserialize = new XmlSerializer(typeof(SpecialCharacter));
xmlserialize.Serialize(writer, testobject);
writer.Flush();
writer.Close();
//deserialize
StreamReader reader = File.OpenText(filename);
XmlSerializer xmldeserialize = new XmlSerializer(typeof(SpecialCharacter));
testobject = (SpecialCharacter)xmldeserialize.Deserialize(reader);
reader.Close();
}
}
public class SpecialCharacter
{
public string special = char.ConvertFromUtf32(0x05).ToString();
}
}
【问题讨论】:
标签: c# xml serialization