public void EnregistrerDessin(Dessin p_dessin) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.IndentChars = "\t"; using (XmlWriter doc = XmlWriter.Create(this.m_nomFichier, settings)) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(DessinFormatElementsDTO), new Type[] { typeof(PolygoneFormatElementsDTO), typeof(CercleFormatElementsDTO), }); // Transformation de Dession vers DessinDTO // Méthode 1 : Manuelle DessinFormatElementsDTO dessinDTO = new DessinFormatElementsDTO(); dessinDTO.Formes = new List <FormeFormatElementsDTO>(); foreach (Forme forme in p_dessin.Formes) { FormeFormatElementsDTO formeDTO = null; switch (forme) { case Polygone p: formeDTO = new PolygoneFormatElementsDTO() { Sommets = p.Sommets.Select(point2D => new Point2DFormatElementsDTO() { X = point2D.X, Y = point2D.Y }).ToList() }; break; case Cercle c: Point2D centre = c.Centre; formeDTO = new CercleFormatElementsDTO() { Centre = new Point2DFormatElementsDTO() { X = centre.X, Y = centre.Y }, Rayon = c.Rayon }; break; default: break; } dessinDTO.Formes.Add(formeDTO); } // Méthode 2 : Bibliothèque automapper //IMapper mapper = CreerOutilConversionEntity2DTO(); //DessinDTO dessinDTO = mapper.Map<DessinDTO>(p_dessin); doc.WriteStartDocument(); xmlSerializer.Serialize(doc, dessinDTO); doc.Close(); } }