gibi bir şey deneyin, daha sonra XML verilerini serializes test.xml adlı bir dosyada (uygulamanızın derleme klasöründe bulunur). Örnek ayrıca ..... XML
usings (test.xml dosyasında) aday candidatelist geri XML De-Dizgeleştirme
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using System.Xml.Serialization;
Sınıflar .....
gösteriyor
(Test.xml itibaren)
[XmlRoot(ElementName = "personalinfo")]
public class Personalinfo
{
[XmlElement(ElementName = "name")]
public string Name { get; set; }
[XmlElement(ElementName = "firstname")]
public string Firstname { get; set; }
[XmlElement(ElementName = "sex")]
public string Sex { get; set; }
[XmlElement(ElementName = "birthday")]
public string Birthday { get; set; }
[XmlElement(ElementName = "group")]
public string Group { get; set; }
[XmlElement(ElementName = "language")]
public string Language { get; set; }
[XmlElement(ElementName = "type")]
public string Type { get; set; }
}
[XmlRoot(ElementName = "items")]
public class Items
{
public Items()
{
this.Item = new List<string>();
}
[XmlElement(ElementName = "item")]
public List<string> Item { get; set; }
}
[XmlRoot(ElementName = "candidate")]
public class Candidate
{
public Candidate()
{
this.Items = new Items();
}
[XmlElement(ElementName = "personalinfo")]
public Personalinfo Personalinfo { get; set; }
[XmlElement(ElementName = "items")]
public Items Items { get; set; }
}
[XmlRoot(ElementName = "candidates")]
public class Candidates
{
public Candidates()
{
this.Candidate = new List<Candidate>();
}
[XmlElement(ElementName = "candidate")]
public List<Candidate> Candidate { get; set; }
}
[XmlRoot(ElementName = "candidatelist")]
public class Candidatelist
{
public Candidatelist()
{
this.Candidates = new Candidates();
}
[XmlElement(ElementName = "comment")]
public string Comment { get; set; }
[XmlElement(ElementName = "candidates")]
public Candidates Candidates { get; set; }
}
Kod .....
private void Form1_Load(object sender, EventArgs e)
{
try
{
Candidatelist Candidatelist = new Candidatelist();
Candidatelist.Comment = "created 15.03.2016";
Candidate candidate1 = new Candidate();
candidate1.Personalinfo = new Personalinfo() { Name = "Parker", Firstname = "Peter", Sex = "M", Birthday = "19.02.1993", Group = "group1", Language = "E", Type = "H" };
candidate1.Items.Item.Add("Item1");
candidate1.Items.Item.Add("Item2");
candidate1.Items.Item.Add("Item3");
candidate1.Items.Item.Add("Item4");
candidate1.Items.Item.Add("Item5");
candidate1.Items.Item.Add("Item6");
candidate1.Items.Item.Add("Item7");
candidate1.Items.Item.Add("Item8");
Candidatelist.Candidates.Candidate.Add(candidate1);
Candidate candidate2 = new Candidate();
candidate2.Personalinfo = new Personalinfo() { Name = "John", Firstname = "Doe", Sex = "M", Birthday = "19.02.1993", Group = "group1", Language = "E", Type = "H" };
candidate2.Items.Item.Add("Item1");
candidate2.Items.Item.Add("Item2");
candidate2.Items.Item.Add("Item3");
candidate2.Items.Item.Add("Item4");
candidate2.Items.Item.Add("Item5");
candidate2.Items.Item.Add("Item6");
candidate2.Items.Item.Add("Item7");
candidate2.Items.Item.Add("Item8");
Candidatelist.Candidates.Candidate.Add(candidate2);
// and to Serialize to XML
Serialize(Candidatelist);
// and to Deserialize from XML
Candidatelist deserializedCandidatelist = Deserialize<Candidatelist>();
}
catch (Exception ex)
{
throw;
}
}
private static void Serialize<T>(T data)
{
// Use a file stream here.
using (TextWriter WriteFileStream = new StreamWriter("test.xml"))
{
// Construct a SoapFormatter and use it
// to serialize the data to the stream.
XmlSerializer SerializerObj = new XmlSerializer(typeof(T));
try
{
// Serialize EmployeeList to the file stream
SerializerObj.Serialize(WriteFileStream, data);
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Failed to serialize. Reason: {0}", ex.Message));
}
}
}
private static T Deserialize<T>() where T : new()
{
//List<Employee> EmployeeList2 = new List<Employee>();
// Create an instance of T
T ReturnListOfT = CreateInstance<T>();
// Create a new file stream for reading the XML file
using (FileStream ReadFileStream = new FileStream("test.xml", FileMode.Open, FileAccess.Read, FileShare.Read))
{
// Construct a XmlSerializer and use it
// to serialize the data from the stream.
XmlSerializer SerializerObj = new XmlSerializer(typeof(T));
try
{
// Deserialize the hashtable from the file
ReturnListOfT = (T)SerializerObj.Deserialize(ReadFileStream);
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Failed to serialize. Reason: {0}", ex.Message));
}
}
// return the Deserialized data.
return ReturnListOfT;
}
// function to create instance of T
public static T CreateInstance<T>() where T : new()
{
return (T)Activator.CreateInstance(typeof(T));
}
XML
<?xml version="1.0" encoding="utf-8"?>
<candidatelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<comment>created 15.03.2016</comment>
<candidates>
<candidate>
<personalinfo>
<name>Parker</name>
<firstname>Peter</firstname>
<sex>M</sex>
<birthday>19.02.1993</birthday>
<group>group1</group>
<language>E</language>
<type>H</type>
</personalinfo>
<items>
<item>Item1</item>
<item>Item2</item>
<item>Item3</item>
<item>Item4</item>
<item>Item5</item>
<item>Item6</item>
<item>Item7</item>
<item>Item8</item>
</items>
</candidate>
<candidate>
<personalinfo>
<name>John</name>
<firstname>Doe</firstname>
<sex>M</sex>
<birthday>19.02.1993</birthday>
<group>group1</group>
<language>E</language>
<type>H</type>
</personalinfo>
<items>
<item>Item1</item>
<item>Item2</item>
<item>Item3</item>
<item>Item4</item>
<item>Item5</item>
<item>Item6</item>
<item>Item7</item>
<item>Item8</item>
</items>
</candidate>
</candidates>
</candidatelist>
bir 'DataSet' olmak zorunda mı? (a 'comment' özelliği ve bir' Listesi 'vb ile' class' olarak candidatelist' ') bir amacı, grafik oluşturmak ve 'XmlSerializer' yoluyla seri için daha kolay olmaz? –
, Tim ile Anlaştı XmlSerialiser –
kullanmak @TimBourguignon evet, bu benim geri düşmeyi, teşekkürler bu. Yine de DataSets ile bunun nasıl çözüleceğini merak ediyorum. – Quen