public static class Serialization { public static string XmlSerialize(object objectInstance) { var serializer = new XmlSerializer(objectInstance.GetType()); var sb = new StringBuilder(); using (TextWriter writer = new StringWriter(sb)) { serializer.Serialize(writer, objectInstance); writer.Dispose(); } string content = sb.ToString(); return content; } public static T XmlDeserializeFromString<T>(string objectData) { return (T)XmlDeserializeFromString(objectData, typeof(T)); } public static object XmlDeserializeFromString(string objectData, Type type) { var serializer = new XmlSerializer(type); object result = null; if (objectData != null) { using (TextReader reader = new StringReader(objectData)) { result = serializer.Deserialize(reader); reader.Dispose(); } } return result; } }
MyObject o = new MyObject(); /* Tu set tous tes champs de ta base de donnée directement via le constructeurs (ou après au choix) puis tu serializes */ string objectSerialized = Serialization.XmlSerialize(object); /* Pour déserializer si besoin : */ MyObject o = Serialization.XmlDeserializeFromString<MyObject >(objectSerialized);
5 août 2015 à 11:36
j'ai fait un peu comme ta méthode avant de poster mais le problème c'est que mes objets et les tags xml n'ont pas les mêmes noms et j'ai pas besoin de créer tout les tags correspondant à tous les attributs de chaque objet. et le fichier xml que je dois créer contient des tags qui ont des valeurs prédéfinies pour des types d'objet. c'est pour ça que je dois avoir un fichier template qui pourra être paramètrer selon les différents projet qui utiliseront l'application que je développe.
5 août 2015 à 13:18
pourquoi ne pas créer une classe de base avec les propriétéss communes et la dériver pour chaque les types de particuliers.
ensuite pour supprimer certain tag utilises les attributs pour la serialisation XML (XMLIgnore) et autres vas voir ici :
http://tlevesque.developpez.com/dotnet/xml-serialization
bonne journée
5 août 2015 à 16:07