我已经看到Shawn Hargreaves发布的一些小例子显示了手动定义一些xml内容,目的是创建和填充c#类的实例,这些实例通过内容管道加载。
我可以看到,如果你有一个能够编写文件的编辑器,允许你加载一个级别或其他任何东西,这将是有用的。
但是,我很好奇......它只做读操作吗?你能用这个概念来保存游戏数据吗?
它还可以用于什么?
答案 0 :(得分:0)
自动XNB序列化(details)只是内容管道无需ContentTypeWriter
或ContentTypeReader
即可读/写数据的能力。除了减少为使用内容管道而必须编写的代码量之外,它实际上并没有提供任何新功能。
从XML加载(使用IntermediateSerializer
或使用XML导入程序通过内容管道加载)是另一回事。
IntermediateSerializer
使用反射自动将.NET对象实例转换为XML。
内容管道(无论您是否使用自动XNB序列化)将.NET对象实例转换为二进制XNB文件。
内容管道还在内容构建方面提供了可扩展的导入器/处理器系统,用于首先生成.NET对象(并且它包括各种内置导入器/处理器)。内置的XML导入器只使用IntermediateSerializer
从XML转换为.NET对象实例。
你无法在你的游戏中使用这些来执行写操作(例如:保存游戏状态,内置关卡编辑器等)的原因是IntermediateSerializer
(写入和写入)和写入XNB一半的内容管道需要安装XNA Game Studio。
XNA Game Studio不是可再发行的。 (只有XNA运行时是可再发行的。)