2012-01-13 10 views
0

これは私が数日間作業してきた問題です。私は、2つのクラスを持つゲームライブラリを作った.1つは変更したい変数の名前と型を含み、もう1つはXMLファイルに書き込むために使われる(シリアライゼーション)。 これは私のシリアライゼーションクラスです:XMLファイルからXNA 4.0にデータをロードする

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"); 

「PostavkeStanica」クラスは、私は、特定のオブジェクトが有効になっているかどうかを判断するために使いたい「Stanje」またはDISと呼ばれる唯一のboolの変数を持っています例えばエーブル可動オブジェクトは(その位置を変えない)radnaStancia1オブジェクトの前にあるとcontitionが真であるときに移動を停止した場合

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

       kontrola = false; 
      } 

このコード片を判定する。 XMLファイルを使用してこの変数の値を設定しようとしています。ソリューション全体を再構築せずにその変数の値を変更できるようにしたいからです。

ご連絡ください、ありがとうございます。

答えて

0

デシリアライザでタイプが見つからない場合は、ゲームライブラリが参照されていないか、コンパイラがそのcontent.load文を理解しようとしているビルド時にゲームライブラリそれは見つけようとしているタイプがまだ構築されていないことを保持しています。

メインゲームプロジェクトの依存関係をライブラリに依存するように設定して、それも参照するようにしてください。ゲームライブラリが依存関係として設定されている場合、コンパイラは最初にそれを構築することを知っています。

+0

はい、私はそれをしましたが、それでも私には同じエラーが表示されます。これは私を混乱させる部分です。論理的には、私は "PostavkeStanice"クラスに対応するXMLファイルを作成するために、一度しかシリアライズする必要はありません。私は、コンソールアプリケーションへの私のゲームライブラリの出力タイプを選択し、デバッグ - >新しいインスタンスを開始することによって、XMLファイルを作成しました。今私は必要なXMLファイルを持っています - それをContentフォルダに貼り付ける必要がありますか? – NDraskovic

+0

いいえ、パスが有効である限り、コンテンツマネージャはそれを見つけることができます。私は解決策が何であるか分かりません。 xmlに "XnaContent"タグがありますか? "Type = PostavkeStanice"属性を持つ "Asset"タグを使用していますか? –

+0

'の<?xml version = "1.0" エンコード= "UTF-8"?> <資産の種類= "Postavke.PostavkeStanice"> ' これが作成される完全なXMLファイルです。 「radnaStanica_stanje」は「workstation_State」を意味し、「kraj」は「end」および「Postavke」を意味する。PostavkeStanice "は" Settings.WorkstationSettings "を意味します。 – NDraskovic

関連する問題