Comment insérer des commentaires XML dans la Sérialisation XML?
Je veux ajouter en haut de mon fichier xml quelques notes pour l'utilisateur qui le lit. Je ne suis pas sûr de savoir comment faire cela avec la sérialisation xml.
Je regardais ce post
C#, XML Insérer un commentaire dans le XML après la balise xml
XDocument document = new XDocument();
document.Add(new XComment("Product XY Version 1.0.0.0"));
using (var writer = document.CreateWriter())
{
serializer.WriteObject(writer, graph);
}
document.Save(Console.Out);
mais je ne suis pas vraiment sûr de ce qui se passe et comment faire pour l'ajouter à mon code. Fondamentalement, j'ai juste avoir quelques cours que j'sérialiser en xml et de le coller dans un flux de mémoire.
Donc je ne sais pas à quel point je me dois d'ajouter les commentaires.
Grâce
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
[XmlRoot("Course")]
public class MyWrapper
{
public MyWrapper()
{
TaskList = new List<Tasks>();
}
[XmlElement("courseName")]
public string CourseName { get; set; }
[XmlElement("backgroundColor")]
public string BackgroundColor { get; set; }
[XmlElement("fontColor")]
public string FontColor { get; set; }
[XmlElement("sharingKey")]
public Guid SharingKey { get; set; }
[XmlElement("task")]
public List<Tasks> TaskList { get; set; }
}
public class Tasks
{
[XmlAttribute("type")]
public string Type { get; set; }
[XmlElement("taskName")]
public string TaskName { get; set; }
[XmlElement("description")]
public string Description { get; set; }
[XmlElement("taskDueDate")]
public DateTime TaskDueDate { get; set; }
[XmlElement("weight")]
public decimal? Weight { get; set; }
[XmlElement("beforeDueDateNotification")]
public int BeforeDueDateNotification { get; set; }
[XmlElement("outOf")]
public decimal? OutOf { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyWrapper wrap = new MyWrapper();
wrap.CourseName = "Comp 1510";
wrap.FontColor = "#ffffff";
wrap.BackgroundColor = "#ffffff";
wrap.SharingKey = Guid.NewGuid();
Tasks task = new Tasks()
{
TaskName = "First Task",
Type = "Assignment",
TaskDueDate = DateTime.Now,
Description = "description",
BeforeDueDateNotification = 30,
OutOf = 50.4M
};
wrap.TaskList.Add(task);
var stream = SerializeToXML(wrap);
}
static public MemoryStream SerializeToXML(MyWrapper list)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyWrapper));
MemoryStream stream = new MemoryStream();
serializer.Serialize(stream, course);
return stream;
}
}
}
Montre-nous ton code 🙂
(J'ai ajouté une solution de rechange à la réponse liée à la question.)
Ok, j'ai ajouté mon code. Donc vous pouvez voir ce que je fais et peut-être où je dois ajouter que le code.
(J'ai ajouté une solution de rechange à la réponse liée à la question.)
Ok, j'ai ajouté mon code. Donc vous pouvez voir ce que je fais et peut-être où je dois ajouter que le code.
OriginalL'auteur chobo2 | 2010-01-24
Vous devez vous connecter pour publier un commentaire.
Il suffit de mettre une XmlWriter comme un niveau intermédiaire entre le MemoryStream et le XmlSerializer:
Votre pouvez ajouter n'importe quel format XML avant et après l'objet sérialisé graphique (tant que le résultat est valide XML).
OriginalL'auteur dtb