c# - 构建后将 XDeclaration 添加到 XDocument

标签 c# .net xml xml-serialization xmlserializer

我有一个 XmlSerializer,用于将对象序列化为 XDocument。

var doc = new XDocument();
using (var writer = doc.CreateWriter())
{
   xmlSerializer.Serialize(writer, object);
}

完成后,我想添加一个 XDeclaration:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

我按如下所述构造此 XDeclaration:

var decl = new XDeclaration("1.0", "UTF-8", "no");

但是,当我尝试将此 XDeclartion 添加到我的 XDocument 时,出现以下错误:

System.ArgumentException : Non white space characters cannot be added to content.

我在 Google 上搜索了一段时间,但我发现的只是将 XDeclaration 添加到 XDocument 的构造函数中,这在我的情况下(当用 XmlWriter 填充时)是 Not Acceptable 。

最佳答案

使用属性 XDocument.Declaration


编辑:

示例代码:

var xmlSerializer = new XmlSerializer(typeof(int));

var doc = new XDocument();

var decl = new XDeclaration("1.0", "utf-8", "no");
doc.Declaration = decl;

using (var writer = doc.CreateWriter())
{
    xmlSerializer.Serialize(writer, 1);
}
doc.Save(File.Create("x.xml"));

此代码产生以下输出:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<int>1</int>

关于c# - 构建后将 XDeclaration 添加到 XDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6494790/

相关文章:

android - 无法启动 Activity Java RunTime 异常

c# - Windows Phone 推送 channel 过期

c# - Xamarin.Android - native 代码编译是否使逆向工程更难?

c# - GDI+ 中发生一般性错误。 (仅当我在服务器上尝试时)

c# - 从 Print Spooler API 获取打印作业的用户域名

c# - 迁移 "Legacy"SQLite 数据库以使用 Entity Framework 时的主键问题

c# - 当 CPU 使用率在一段时间内超过限制时发出警报

c# - 声明属性时 "=>"在 .Net C# 中做什么?

java - 为什么我的操作栏没有显示以及如何修复它?

java - 如何使用 XPath/XSLT fn :json-to-xml