23. august 2008 - 16:06Der er
5 kommentarer og 1 løsning
.NET Serialization
Hej, jeg har en liste af objekter som blive udskrevet på en fil:
43 False 44 False 45 False 46 False 47 False
Men til hver af disse liner, skal der være x antal reserveringer som består af en dato og navn.
Men hvordan gør jeg det, så jeg kan indlæse det til listerne igen, skal det være noget i den retning
43 False, Reserveringer: ole 2-2-2008, peter 3-2-2008 44 False 45 False 46 False 47 False
og så når jeg skal indlæse det, laver jeg en en funktion som kun indlæser efter "Reserveringer:" og efter hvert komma?
Eller bliver jeg nødt til at oprette en mappe og så gemme udskriften af listen med reserveringer i mappen?
Her er min kode: // Specify file, instructions, and privelegdes FileStream file = new FileStream(@"c:\test\test.txt", FileMode.OpenOrCreate, FileAccess.Write);
// Create a new stream to write to the file StreamWriter sw = new StreamWriter(file);
// Write a string to the file Flaskeliste.ForEach(delegate(Flaske st) { sw.WriteLine((st.ToString() + " " + (st.PropertyTilstand.ToString())));
Det er lige ud af landevejen og du behøver ikke engang vide noget om XML !
Eksempel fra lageret:
using System; using System.IO; using System.Text; using System.Collections; using System.Xml.Serialization;
public class X { private int v; public X() : this(0) { } public X(int v) { this.v = v; } public int V { get { return v; } set { v = value; } } public override string ToString() { return v.ToString(); } }
[XmlInclude(typeof( X ))] public class Test { private ArrayList list; public Test() { list = new ArrayList(); } public void Add(X x) { list.Add(x); } public ArrayList List { get { return list; } set { list = value; } } public override string ToString() { StringBuilder sb = new StringBuilder(""); for(int i = 0; i < list.Count; i++) { sb.Append(list[i]); } return sb.ToString(); } }
class MainClass { public static void Main(string[] args) { Test tst = new Test(); tst.Add(new X(1)); tst.Add(new X(2)); tst.Add(new X(3)); Console.WriteLine(tst); XmlSerializer ser = new XmlSerializer(typeof(Test)); StreamWriter sw = new StreamWriter("C:\\test.xml"); ser.Serialize(sw, tst); sw.Close(); StreamReader sr = new StreamReader("C:\\test.xml"); Test tst2 = (Test)ser.Deserialize(sr); sr.Close(); Console.WriteLine(tst2); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.