XNA中XML序列化期间的InvalidOperationsException
我有一个关于我在尝试通过XNA4.0内容管道读取XML文件以构建对象时遇到的错误的问题。首先,我重新使用了我的旧XNA 3.1代码,该代码在当时运行,但现在抛出了一条错误消息: 建筑内容引发无效操作异常:Instancen von abstrakten Klassen können nicht erstellt werden。(无法生成抽象类的实例-粗略翻译) 在ReflectionMitutils()处 …并且一直持续下去,如果需要,我可以发布它,但为了更好地理解我最初的请求 然后我使用了这个,但它抛出了相同的错误 以下是相关的源代码: 我编写了一个类来定义XML文件的内容/结构:XNA中XML序列化期间的InvalidOperationsException,xna,xml-serialization,invalidoperationexception,Xna,Xml Serialization,Invalidoperationexception,我有一个关于我在尝试通过XNA4.0内容管道读取XML文件以构建对象时遇到的错误的问题。首先,我重新使用了我的旧XNA 3.1代码,该代码在当时运行,但现在抛出了一条错误消息: 建筑内容引发无效操作异常:Instancen von abstrakten Klassen können nicht erstellt werden。(无法生成抽象类的实例-粗略翻译) 在ReflectionMitutils()处 …并且一直持续下去,如果需要,我可以发布它,但为了更好地理解我最初的请求 然后我使用了这个
public class Command
{
public List<bool> mButtons;
public List<Keys> keys;
public Enum iD;
}
公共类命令
{
公开名单;
公共列表密钥;
公共枚举iD;
}
这是我的XML文件,我想用它来构建命令对象
<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="KinectRTS_Input.Command">
<mButtons>true/mButtons>
<keys>
<Item>LeftControl/Item>
</keys>
<iD>SMulti/iD>
</Asset>
</XnaContent>
为了找出XNA序列化程序用于输出列表项和枚举的格式,因此我可以合理地确定没有错误。看起来您的XML无效或者您的模型无效。对于mButtons
字段,您已将其定义为列表
,但在XML中它是bool
而不是列表
。我要么编辑XML使
元素包含单个
元素,要么将模型中mButtons
的声明更改为bool
而不是List
太容易了……问题不在于列表,事实上,我的请求中提到的测试应用程序实际上返回了XML标记,其中键列表带有Item标记,bool列表没有Item标记。将bool包装到Item标记中会导致“at not expected”错误。我不知道为什么序列化程序处理列表和列表的方式不同
问题是枚举'iD',它是一个抽象类,因此抛出上面提到的错误。我似乎被错误消息的大小所压倒,而忽略了关键的一点信息——序列化程序试图构建一个抽象类
不过还是要谢谢你库罗尼凯美酒店