これは私が数日間作業してきた問題です。私は、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ファイルを使用してこの変数の値を設定しようとしています。ソリューション全体を再構築せずにその変数の値を変更できるようにしたいからです。
ご連絡ください、ありがとうございます。
はい、私はそれをしましたが、それでも私には同じエラーが表示されます。これは私を混乱させる部分です。論理的には、私は "PostavkeStanice"クラスに対応するXMLファイルを作成するために、一度しかシリアライズする必要はありません。私は、コンソールアプリケーションへの私のゲームライブラリの出力タイプを選択し、デバッグ - >新しいインスタンスを開始することによって、XMLファイルを作成しました。今私は必要なXMLファイルを持っています - それをContentフォルダに貼り付ける必要がありますか? – NDraskovic
いいえ、パスが有効である限り、コンテンツマネージャはそれを見つけることができます。私は解決策が何であるか分かりません。 xmlに "XnaContent"タグがありますか? "Type = PostavkeStanice"属性を持つ "Asset"タグを使用していますか? –
'の<?xml version = "1.0" エンコード= "UTF-8"?> <資産の種類= "Postavke.PostavkeStanice"> 偽 radnaStanica1_Stanje> 偽 radnaStanica2_Stanje> 偽 radnaStanica3_Stanje> kraj_Stanje>偽 ' これが作成される完全なXMLファイルです。 「radnaStanica_stanje」は「workstation_State」を意味し、「kraj」は「end」および「Postavke」を意味する。PostavkeStanice "は" Settings.WorkstationSettings "を意味します。 –
NDraskovic