Я пытаюсь перенести мою компьютерную игру XNA на xbox и пытаюсь внедрить xna easystorage вместе с моим существующим управлением файлами ПК для рекордов. В основном пытается объединить http://xnaessentials.com/tutorials/highscores.aspx/tutorials/highscores.aspx с http://easystorage.codeplex.com/
Я столкнулся с одной конкретной ошибкой, касающейся LoadHighScores () как ошибки с return (data); - Использование неназначенной локальной переменной data.
Полагаю, это связано с асинхронным дизайном easystorage / xbox !? но не уверен, как решить - ниже приведены примеры кода:
ОРИГИНАЛЬНЫЙ ПК-КОД: (работает на ПК)
общедоступная статическая HighScoreData LoadHighScores (строковое имя файла)
{
Данные HighScoreData; // Получить путь к сохраненной игре
string fullpath = "Content/highscores.lst";
// Open the file
FileStream stream = File.Open(fullpath, FileMode.Open,FileAccess.Read);
try
{ // Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{ // Close the file
stream.Close();
}
return (data);
}
ПОРТ XBOX: (с ошибкой)
общедоступная статическая HighScoreData LoadHighScores (контейнер строки, имя файла строки)
{
Данные HighScoreData;
if (Global.SaveDevice.FileExists(container, filename))
{
Global.SaveDevice.Load(container, filename, stream =>
{
File.Open(Global.fileName_options, FileMode.Open,//FileMode.OpenOrCreate,
FileAccess.Read);
try
{
// Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{
// Close the file
stream.Close();
}
});
}
return (data);
}
Есть идеи?