C#怎么把一个对象序列化为不带XML声明的字符串

admin 百科 12
XmlSerializer序列化时去掉XML声明的关键是使用XmlWriterSettings设置OmitXmlDeclaration=true,通过XmlWriter控制输出而非字符串替换;注意StringWriter默认UTF-16编码,推荐MemoryStream配合UTF-8避免编码问题。

C#怎么把一个对象序列化为不带XML声明的字符串-第1张图片-佛山资讯网

XmlSerializer 序列化对象时,默认会生成带 XML 声明(如 <?xml version="1.0" encoding="utf-8"?>)的字符串。要去掉它,关键在于**控制序列化输出的 XmlWriter 设置**,而不是修改序列化器本身。

使用 XmlWriterSettings 禁用 XML 声明

创建 XmlWriter 时传入一个配置好的 XmlWriterSettings,把 OmitXmlDeclaration 设为 true

  • 新建 StringWriter 接收输出
  • 新建 XmlWriterSettings,设 OmitXmlDeclaration = true
  • 用该设置创建 XmlWriter,再传给 XmlSerializer.Serialize()

示例代码:

标签: 编码 stream c# 隐式转换

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~