26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

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();

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!