Serialisering (Visual Basic)

Serialisering är processen att konvertera ett objekt till en ström med byte för att lagra objektet eller överföra det till minnet, en databas eller en fil. Dess huvudsakliga syfte är att spara tillståndet för ett objekt för att kunna återskapa det när det behövs. Den omvända processen kallas deserialisering.

Så här fungerar serialisering

Den här bilden visar den övergripande serialiseringsprocessen.

Serialization graphic

Objektet serialiseras till en dataström som inte bara innehåller data, utan även information om objektets typ, till exempel dess version, kultur och sammansättningsnamn. Från dataströmmen kan den lagras i en databas, en fil eller ett minne.

Användningsområden för serialisering

Serialisering gör att utvecklaren kan spara tillståndet för ett objekt och återskapa det efter behov, vilket ger lagring av objekt samt datautbyte. Genom serialisering kan en utvecklare utföra åtgärder som att skicka objektet till ett fjärrprogram med hjälp av en webbtjänst, skicka ett objekt från en domän till en annan, skicka ett objekt via en brandvägg som en XML-sträng eller upprätthålla säkerhet eller användarspecifik information mellan program.

Göra ett objekt serialiserbart

Om du vill serialisera ett objekt måste objektet serialiseras, en dataström som ska innehålla det serialiserade objektet och ett Formatter. System.Runtime.Serialization innehåller de klasser som krävs för serialisering och deserialisering av objekt.

SerializableAttribute Använd attributet för en typ för att ange att instanser av den här typen kan serialiseras. Ett SerializationException undantag utlöses om du försöker serialisera men typen inte har attributet SerializableAttribute .

Om du inte vill att ett fält i klassen ska vara serialiserbart använder du NonSerializedAttribute attributet. Om ett fält av serialiserbar typ innehåller en pekare, ett handtag eller någon annan datastruktur som är specifik för en viss miljö, och fältet inte kan återskapas på ett meningsfullt sätt i en annan miljö, kanske du vill göra det icke-ialiserbart.

Om en serialiserad klass innehåller referenser till objekt i andra klasser som är markerade SerializableAttributekommer dessa objekt också att serialiseras.

Binär- och XML-serialisering

Binär- eller XML-serialisering kan användas. I binär serialisering serialiseras alla medlemmar, även de som är skrivskyddade, och prestandan förbättras. XML-serialisering ger mer läsbar kod, samt större flexibilitet för objektdelning och användning i samverkanssyfte.

Binär serialisering

Binär serialisering använder binär kodning för att skapa kompakt serialisering för användning som lagring eller socketbaserade nätverksströmmar.

XML-serialisering

XML-serialisering serialiserar offentliga fält och egenskaper för ett objekt, eller parametrarna och returvärdena för metoder, till en XML-dataström som överensstämmer med ett specifikt XSD-dokument (XML Schema Definition Language). XML-serialisering resulterar i starkt skrivna klasser med offentliga egenskaper och fält som konverteras till XML. System.Xml.Serialization innehåller de klasser som krävs för serialisering och deserialisering av XML.

Du kan använda attribut för klasser och klassmedlemmar för att styra hur XmlSerializer serialiserar eller deserialiserar en instans av klassen.

Grundläggande och anpassad serialisering

Serialisering kan utföras på två sätt, grundläggande och anpassad. Grundläggande serialisering använder .NET Framework för att automatiskt serialisera objektet.

Grundläggande serialisering

Det enda kravet i grundläggande serialisering är att objektet har attributet SerializableAttribute tillämpat. NonSerializedAttribute Kan användas för att förhindra att specifika fält serialiseras.

När du använder grundläggande serialisering kan versionshantering av objekt skapa problem, i vilket fall anpassad serialisering kan vara att föredra. Grundläggande serialisering är det enklaste sättet att utföra serialisering, men den ger inte mycket kontroll över processen.

Anpassad serialisering

I anpassad serialisering kan du ange exakt vilka objekt som ska serialiseras och hur det ska göras. Klassen måste markeras SerializableAttribute och implementera ISerializable gränssnittet.

Om du vill att objektet även ska deserialiseras på ett anpassat sätt måste du använda en anpassad konstruktor.

Designer-serialisering

Designer-serialisering är en särskild form av serialisering som omfattar den typ av objektpersistence som vanligtvis är associerad med utvecklingsverktyg. Designer-serialisering är processen att konvertera ett objektdiagram till en källfil som senare kan användas för att återställa objektdiagrammet. En källfil kan innehålla kod, markering eller till och med SQL tabellinformation.

Relaterade ämnen och exempel

Genomgång: Spara ett objekt i Visual Studio (Visual Basic)
Visar hur serialisering kan användas för att bevara ett objekts data mellan instanser, så att du kan lagra värden och hämta dem nästa gång objektet instansieras.

Anvisningar: Läsa objektdata från en XML-fil (Visual Basic)
Visar hur du läser objektdata som tidigare skrivits till en XML-fil med hjälp av XmlSerializer klassen .

Anvisningar: Skriva objektdata till en XML-fil (Visual Basic)
Visar hur du skriver objektet från en klass till en XML-fil med hjälp av XmlSerializer klassen .