Tot timpul zilei. Despre conexiunea Alexey Gulynin. În ultimul articol, ne-am uitat la lucrul cu clasa Path în C #. În acest articol, aș vrea să vorbesc despre ce serializare este în C # și despre ce este vorba. Serializarea reprezintă reprezentarea unui obiect sub forma unui flux de octeți. Deserializarea este restaurarea unui obiect și a datelor sale dintr-un flux de octeți. În ce scop poate fi aplicat acest lucru:
- Salvarea unui obiect într-o bază de date,
- Salvarea unui obiect într-un fișier,
- Pentru a putea transfera obiecte pe o rețea
Formatul de transmisie al acestor octeți depinde de modul în care este efectuată serializarea.
Formate de serializare
1. Binare. În acest caz, datele obiectului sunt reprezentate în formă binară. Aceasta este varianta cea mai optimă de serializare în ceea ce privește viteza și dimensiunea. Dezavantajul acestui tip este legătura cu platforma. Să presupunem că ați transferat datele unui alt programator care are aceeași platformă .NET și aceeași versiune a acestei platforme. În acest caz, acesta poate deserializa datele, în caz contrar nu.
3. XML (eXtensible Markup Language). Acest tip de serializare reprezintă un obiect în format XML.
4. De asemenea, rețineți că puteți scrie propriul serializator, care va reprezenta obiectele în forma de care aveți nevoie.
Acțiunile minimale care trebuie luate pentru a face serializarea obiectelor de clasă sunt de a atârna atributul Serializabil în clasă. În mod implicit, atunci când creați o clasă, nu este considerată serializabilă. Când încercați să serializați un obiect din această clasă, "Excepția" se va prăbuși.
Procesul de serializare a obiectului
Când serializarea câmpuri de tip "valuetype" (int, double, char, string, bollean ...) pur și simplu este salvat sensul lor. În cazul unui tip de date de referință, este mai dificil. Dacă suntem în câmpul obiect al unui tip de referință, acesta va fi serializate, nu numai obiectul nostru inițial, dar, de asemenea, obiectele care sunt referite de aceste domenii (nu va fi serializat un obiect, iar arborele de obiecte). Toate acestea este un arbore de obiecte trebuie să aparțină claselor serializabile, altfel acoperi „excepție“.
Dacă vrem să determinăm pentru noi înșine ceea ce avem nevoie pentru a serializa și ce nu, și cum să o facem, adică, ce date să includeți și cum să le preluați mai târziu, atunci trebuie să implementați interfața ISerializabilă.
De asemenea, pentru ca serializarea să funcționeze fără probleme, clasa trebuie să aibă un constructor fără parametri.
Vom vorbi mai multe despre această interfață în următorul articol.
Un exemplu simplu despre cum ar trebui să arate o clasă serializabilă:
În acest articol, ați aflat ce serializare este în C #.
Mai multe articole.
- Interfețe C #
- StringBuilder C #
- Conversia explicită și implicită la c #
- Calea în C #
- Json-serializare în C #