Operativsystem: .............................................................
Operativsystem: .............................................................
Operativsystem: .............................................................
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Serialisering af objekter – gem objekter:<br />
At serialisere et objekt er at gemme det og hele dets tilstand i en fil (typisk). At deserialisere er<br />
den modsatte proces: at indlæse et objekt fra en fil.<br />
Et objekt kan dog også serialiseres til en netværksforbindelse (socket), en CD, til Windows<br />
Clipboard (udklipsholder) mv.<br />
I C# bliver ikke blot objektets tilstand (tilstandsvariable) men også dets referencer (relation til<br />
andre objekter) gemt. Det som gemmes er en ’objekt graf’.<br />
En serialisering kan ske på to forskellige måder i C#: i en *.dat fil (med en binær formattering)<br />
eller i en *.xml fil (med en SOAP formattering).<br />
Disse ting er defineret i System.Runtime.Serialization.Formatters.dll.<br />
En klasse skal mærkes med en attribut [Serializable] for at kunne serialiseres. I det følgende<br />
eksempel er vist de to måder at gemme på:<br />
// Demo program som gemmer objekter i XML og binært dat format<br />
// Demo af C# serialisering og deserialisering<br />
//se filen huse.xml og huse.dat!<br />
using System.IO;<br />
using System.Runtime.Serialization.Formatters.Soap;<br />
using System.Runtime.Serialization.Formatters.Binary;<br />
using System;<br />
using System.Collections;<br />
//NB hvis ikke klassen får denne 'attribut' kan den ikke serialiseres!<br />
[Serializable]<br />
public class Hus{<br />
private string kode;<br />
private int byggeaar;<br />
public Hus(string k,int a){kode=k;byggeaar=a;}<br />
public string getKode(){return kode;}<br />
public int getAar(){return byggeaar;}<br />
}<br />
class app<br />
{<br />
public static void Main(string[] args)<br />
{<br />
Hus hus1=new Hus("abc-22",1977);<br />
Hus hus2=new Hus("xz-1234",1999);<br />
Hus hus3=new Hus("ab-77",2001);<br />
//alle objekter gemmes i ArrayList som serialiseres samlet<br />
//hvert objekt kunne selvfølgelig gemmes hver for sig - hvis ønsket<br />
ArrayList liste=new ArrayList();