0

オブジェクトを構築するために XNA 4.0 コンテンツ パイプラインを介して XML ファイルを読み込もうとしているときに発生するエラーについて質問があります。最初に、以前は機能していた古い XNA 3.1 コードを再利用しましたが、現在はエラー メッセージがスローされます。

ビルド コンテンツが InvalidOperationException: Instanzen von abstrakten Klassen können nicht erstellt werden をスローしました。(抽象クラ​​スのインスタンスを構築できません - 大まかに翻訳されています)ReflectionEmitUtils()で...そして永遠に続きます。必要に応じて投稿できますが、最初のリクエストを読みやすくするために..

次に、このメソッドを使用しましたが、同じエラーがスローされます。

関連するソース コードは次のとおりです。XML ファイルのコンテンツ/構造を定義するクラスを作成しました。

public class Command
    {        
        public List<bool> mButtons;       
        public List<Keys> keys;        
        public Enum 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>

(私のコードでは、ブラケットはすべて正しいですが、このフォームは XML タグを処理するため...;)) XNA -Serializer が List-Items と列挙型なので、エラーがないことはかなり確信しています。

4

2 に答える 2

0

XML が無効であるか、モデルが無効のようです。mButtonsフィールドについては、として定義しましたList<bool>が、XML では ではありboolませんList<bool>。XML を編集して<mButtons>要素に 1 つの要素を含めるか、モデル内<Item>の宣言をnotに変更します。mButtonsboolList<bool>

于 2012-05-22T19:35:55.250 に答える
0

簡単すぎる...問題はリストにありませんでした。実際、私のリクエストで言及されたテストアプリケーションは、キーリストのアイテムタグ付きでブールリストのアイテムタグなしのXMLタグを実際に返しました。bool を Item-Tags にラップすると、" at not expected" エラーが発生しました。ただし、Serializer が List と List を異なる方法で処理する理由はわかりません。

問題は、抽象クラスであり、上記のエラーをスローする Enum 'iD' でした。エラーメッセージのサイズに圧倒され、シリアライザーが抽象クラスを構築しようとするという重要な情報を無視したようです。

どっちにしても、ありがとうね。– 黒二開明

于 2012-05-24T12:47:40.623 に答える