【发布时间】:2023-03-28 11:47:01
【问题描述】:
我有一个包含四个字段(日期时间、枚举、字符串、字符串)的类。我想以紧凑的方式将它与一个 XML 元素或一系列 XML 元素进行序列化。例如,我可能会将其序列化为这样的:
<i t='234233' a='3'><u>Username1</u><s1>This is a string</s1></i>
<i t='234233' a='4'><u>Username2</u><s1>This is a string</s1></i>
<i t='223411' a='1'><u>Username3</u><s1>This is a string</s1></i>
其中“i”是每个类实例,“t”是日期时间刻度,“a”是枚举值,元素是字符串。
我希望没有根元素,但如果有的话,我希望它尽可能小。
我尝试将 XmlSerializer 与 XmlWriterSettings 类一起使用,但我无法摆脱命名空间和根元素。
这样做的最佳方法是什么?我没有保存到文件,我正在读取和写入内存中的字符串。
【问题讨论】:
-
XML 需要一个根元素才能形成良好的格式;因此大多数工具都不会产生一个。
-
序列化这些对象究竟是为了什么目的?这可能会帮助我们帮助您。
-
您使用的是什么版本的 .NET?可能您可以使用 DataContractSerializer,它可以序列化为 XML 的紧凑二进制形式。
-
使用 .NET 2.0。我正在压缩通过 TCP/IP 和数据库存储进行传输。人类可读优于二进制,但越短越好。
标签: c# xml xml-serialization