У меня есть совместный проект XNA-Silverlight, который я разрабатываю, и я пытаюсь добавить в него XML-контент.До этого у меня была следующая настройка:
- Проект контента * Библиотека игр XNA
- - ссылается на проект контента
- Проект Silverlight - ссылается на библиотеку игр XNA
У меня были изображения в проекте контента, и я мог прекрасно скомпилировать и загрузить их из кода Silverlight.Сейчас я пытаюсь добавить контент XML в проект контента и код в библиотеку игры, которая его описывает, но я, должно быть, что-то делаю не так, потому что получаю следующую ошибку: Произошла ошибка при десериализации промежуточного XML.Не удается найти тип «CrystalLib.Map»
В проекте содержимого у меня есть папка с именем maps, и под ней у меня есть следующий XML-файл:
<?xml version="1.0" encoding="utf-8"?>
<XnaContent>
<Asset Type="CrystalLib.Map">
<TileSetFile>grassland</TileSetFile>
<Dimensions>500 250</Dimensions>
<Tiles>
... Lots of integers (500 x 250)
</Tiles>
</Asset>
</XnaContent>
Затем у меня естьследующий класс в игровом проекте xna (Map.cs):
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
namespace CrystalLib
{
/// Represents the data stored in a map file
class Map
{
/// The name of tile set file
private string tileSetFile;
/// The name of tile set file
public string TileSetFile
{
get { return tileSetFile; }
set { tileSetFile = value; }
}
/// The dimensions of the map, in tiles.
private Point dimensions;
/// The dimensions of the map, in tiles.
public Point Dimensions
{
get { return dimensions; }
set { dimensions = value; }
}
/// Spatial array for the tiles for this map.
private int[] tiles;
/// Spatial array for the tiles for this map.
public int[] Tiles
{
get { return tiles; }
set { tiles = value; }
}
/// Retrieves the base layer value for the given map position.
public int GetTile(int x, int y)
{
return tiles[y * dimensions.X + x];
}
/// Read a Map object from the content pipeline.
public class MapReader : ContentTypeReader<Map>
{
protected override Map Read(ContentReader input, Map existingInstance)
{
Map map = existingInstance;
if (map == null)
{
map = new Map();
}
map.TileSetFile = input.ReadString();
map.Dimensions = input.ReadObject<Point>();
map.Tiles = input.ReadObject<int[]>();
return map;
}
}
}
}
Что еще мне нужно?