¿Cómo serializar una clase que contiene objetos de otras clases (serialización recursiva?)

¿Cómo puedo hacer esto? ¿O el serializador irá automáticamente con recursión y serializará todos esos objetos secundarios en XML?

¡Dame un ejemplo de cómo serializarías las clases que contienen objetos de otras clases en sí mismas! Ese fue el núcleo de esta pregunta!

He intentado esto, y no saliócualquier cosa (excepto el encabezado XML) al archivo XML de destino.

Mi problema es que necesito serializar una clase simple, que solo contiene un objeto List. Pero, esas Entidades también tienen objetos de Lista. (Otra ventaja sería si pudiera evitar la serialización de algunos componentes, porque algunos se derivan y tienen diccionarios en ellos).

public void SaveCurrent(string MapFileName)
{
    string MapPath = world_.game_.Content.RootDirectory + "/Maps/" + MapFileName + ".xml";
    StreamWriter MapWriter = new StreamWriter(MapPath);

    Map SavedMap = new Map();
    SavedMap.Entities = world_.Entities;
    XmlSerializer xSerializer = new XmlSerializer(SavedMap.GetType());

    xSerializer.Serialize(MapWriter, SavedMap);
    MapWriter.Close();
}

Esa es la pieza de código que hace la serialización.

public class Map
{
    internal string MapName;
    internal string MapDescription;
    internal string MapAuthor;
    public List<Entity> Entities = new List<Entity>();
}

Y esta es la clase que está serializada.¿Podrían contarse los elementos internos como públicos si la serialización se llama desde el mismo ensamblado? El código arroja una excepción alSavedMap.GetType() función, y he intentadotypeof(Map) también, pero sin éxito. Supongo que es porque necesito otra forma de manejar cada nueva clase (serialización profunda) ¿cómo hago eso?

Además, he encontrado en algunos ejemplos, que no hay herencia o atributos de interfaz, por lo tanto, tampoco los agregué, pero planeo usar IXmlSerializable, aunque no sé cómo llamar a otra serialización dentro de WriteXML implementación.

Respuestas a la pregunta(4)

Su respuesta a la pregunta