XNA中XML序列化期间的InvalidOperationsException

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()处 …并且一直持续下去,如果需要,我可以发布它,但为了更好地理解我最初的请求 然后我使用了这个

我有一个关于我在尝试通过XNA4.0内容管道读取XML文件以构建对象时遇到的错误的问题。首先,我重新使用了我的旧XNA 3.1代码,该代码在当时运行,但现在抛出了一条错误消息:

建筑内容引发无效操作异常:Instancen von abstrakten Klassen können nicht erstellt werden。(无法生成抽象类的实例-粗略翻译) 在ReflectionMitutils()处 …并且一直持续下去,如果需要,我可以发布它,但为了更好地理解我最初的请求

然后我使用了这个,但它抛出了相同的错误

以下是相关的源代码: 我编写了一个类来定义XML文件的内容/结构:

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',它是一个抽象类,因此抛出上面提到的错误。我似乎被错误消息的大小所压倒,而忽略了关键的一点信息——序列化程序试图构建一个抽象类

不过还是要谢谢你库罗尼凯美酒店