将XML文件中的数据加载到XNA 4.0中

时间:2012-01-13 11:17:43

标签: c# xml xna xna-4.0

这是我几天来一直在努力的问题。我设法创建了一个包含两个类的游戏库 - 一个包含名称' s和我想要更改的变量类型,另一个用于写入XML文件(序列化)。 这是我的序列化类:

namespace Postavke
{
    public class TempMain
    {
        public static void Main()
        {
            object TestValue = new PostavkeStanice();
            XmlWriterSettings XMLPostavke = new XmlWriterSettings();
            XMLPostavke.Indent = true;

            using (XmlWriter pisac = XmlWriter.Create("Postavke.xml", XMLPostavke))
            {
                IntermediateSerializer.Serialize(pisac, TestValue, null);
            }
        }
    }
}

我要序列化的类(" PostavkeStanica")只有一个bool变量,因此XML文件非常非常简单。 当我想将数据从XML加载到我的XNA 4.0程序时出现问题。我使用ContentManager,但当我尝试使用应由此设置其值的变量时,我收到错误

"There was an error while deserializing intermediate XML. Cannot find type Postavke.PostavkeStanice"."

在声明区域:

ContentManager upraviteljSadrzaja;
PostavkeStanice radnaStanica1;

在LoadContent方法中:

radnaStanica1 = upraviteljSadrzaja.Load<PostavkeStanice>(@"Teksture/Postavke");

&#34; PostavkeStanica&#34; class只有一个bool变量叫做#34; Stanje&#34;我想用它来确定某个对象是启用还是禁用,例如:

if (position == stanica1 && radnaStanica1.Stanje)
            {

                kontrola = false;
            }

这段代码确定一个可移动物体是否位于radnaStancia1物体前面(它没有改变它的位置),当转移为真时它会停止移动。 我试图使用XML文件来设置此变量的值,因为我希望能够在不重建整个解决方案的情况下更改该变量的值。

请告知,谢谢。

1 个答案:

答案 0 :(得分:0)

有时当反序列化器找不到类型时,它要么是因为游戏库没有被引用 - 或者 - 在编译器试图理解那个content.load语句的构建时间内,游戏库是保持它试图找到尚未建立​​的类型。

确保将主游戏项目的依赖关系设置为依赖于库并引用它。当游戏库被设置为依赖项时,编译器知道首先构建它。