כתיבה וטעינה של קבצי XML בשפת c#
ניתן לכתוב/לקרוא XML לכל סוג של מחלקה/אובייקט, גם אם יהיה זה אובייקט בסיסי (לדוגמה string) או מחלקה שנוצרה על-ידי המשתמש:
שימוש לדוגמה:
קובץ XML תוצאה:
ניתן לכתוב/לקרוא XML לכל סוג של מחלקה/אובייקט, גם אם יהיה זה אובייקט בסיסי (לדוגמה string) או מחלקה שנוצרה על-ידי המשתמש:
public class SnirXmlHandler
{
/// <summary>save xml</summary>
public static void Save<T>(T t, string filename)
{
try
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (TextWriter textWriter = new StreamWriter(filename))
{
serializer.Serialize(textWriter, t);
textWriter.Close();
}
}
catch (Exception ex) { throw; }
}
/// <summary>load xml file</summary>
public static T
Load<T>(string filename)
{
T t;
try
{
XmlSerializer deserializer = new XmlSerializer(typeof(T));
using (TextReader textReader = new StreamReader(filename))
{
t =
(T)deserializer.Deserialize(textReader);
textReader.Close();
}
}
catch (Exception ex) { throw; }
return t;
}
}
שימוש לדוגמה:
public class MyClass { public string Name { get; set; } public int[] Age { get; set; } public MyClass2 Mc2 { get; set; } } public class MyClass2 { public int[] Num { get; set; } } class Program { static void Main(string[] args) { MyClass myclass = new MyClass() { Name = "snir", Age = new int[] { 1, 2, }, Mc2 = new MyClass2 { Num = new int[] { 10, 45 } } }; SnirXmlHandler.Save(myclass, "snir.xml"); MyClass mc = SnirXmlHandler.Load ("snir.xml"); } }
קובץ XML תוצאה:
<myclass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <age> <name>snir</name> <age> <int>1</int> <int>2</int> </age> <mc2> <num> <int>10</int> <int>45</int> </num> </mc2> </myclass>