Загрузка данных из файла XML в XNA 4.0 - PullRequest
0 голосов
/ 13 января 2012

Это проблема, над которой я работаю уже несколько дней.Мне удалось создать библиотеку Game, которая имеет 2 класса - один содержит имена и типы переменных, которые я хочу изменить, а другой используется для записи в файл XML (сериализация).Это мой класс сериализации:

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" есть только одна переменная bool с именем "Stanje", которую я хочу использовать, чтобы определить, включен или отключен определенный объект, например:

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

                kontrola = false;
            }

Этот фрагмент кода определяет, находится ли подвижный объект перед объектом radnaStancia1 (который не меняет свою позицию), и когда значение true, оно останавливает движение.Я пытаюсь использовать файл XML, чтобы установить значение этой переменной, потому что я хочу иметь возможность изменить значение этой переменной без перестройки всего решения.

Пожалуйста, посоветуйте, спасибо.

1 Ответ

0 голосов
/ 13 января 2012

Иногда, когда десериализатор не может найти тип, это происходит из-за того, что на игровую библиотеку не ссылаются - или - во время сборки, когда компилятор пытается разобраться в этом выражении content.load, игровой библиотеке, котораясодержит тип, который он пытается найти, еще не был построен.

Убедитесь, что зависимость основного игрового проекта зависит от библиотеки И также обращайтесь к ней.Когда библиотека игры установлена ​​как зависимость, компилятор знает, как ее сначала собрать.

...