这是我几天来一直在努力的问题。我设法创建了一个包含两个类的游戏库 - 一个包含名称' 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文件来设置此变量的值,因为我希望能够在不重建整个解决方案的情况下更改该变量的值。
请告知,谢谢。
答案 0 :(得分:0)
有时当反序列化器找不到类型时,它要么是因为游戏库没有被引用 - 或者 - 在编译器试图理解那个content.load语句的构建时间内,游戏库是保持它试图找到尚未建立的类型。
确保将主游戏项目的依赖关系设置为依赖于库并引用它。当游戏库被设置为依赖项时,编译器知道首先构建它。