总结一下,如何将数据写入我之前读过的.xnb XML文件?
我有以下内容:
项目内容文件夹中的可编辑XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="TestProgram_Data.Data">
<Number>123</Number>
</Asset>
</XnaContent>
我的数据类:
namespace TestProgram_Data
{
public class Data
{
public int Number;
}
}
现在我可以从已编译的XML文件(.xnb,XNA内容文件)加载数据,如下所示:
Data data = new Data();
Console.WriteLine("Number: " + data.Number); // Output: "Number: 123"
但是如何写入此文件(内容文件夹下的.xnb文件)?
data.Number = 123456789; // Doesn't work
我尝试将XmlWriter与IntermediateSerializer一起使用,但它是一个普通的XML文件。我也可以用这个制作.xnb文件,但是在这种情况下.xnb文件没有编译(我可以用记事本编辑,不是我的项目的一部分,如果我再次运行我的程序,默认数据[例如.123]再次加载 - 因为我从我的.xnb文件中读取而不是从使用XmlWriter创建的其他文件中读取。
完全可以将数据保存回.xnb文件,从我以前读过的文件?
答案 0 :(得分:1)
这是不可能的。 XNB是一种只读格式,专为快速运行时加载内容而设计。它仅在构建时由内容管道编写。您必须将修改后的数据写入不同格式的新文件中。
此外,IntermediateSerializer
是内容管道的一部分,它仅包含在XNA开发工具中。它不包含在最终用户可再发行组件中。因此,您不应该使用它来创建新文件,而是使用其他一些序列化程序。