C # pentru ferestre

Punctul 1. Cu serializarea obiectelor

Serializare - procesul de conversie a unui obiect (clasa) în secvența de octeți, în scopul de a păstra în memorie (fișierul bazei de date), trimiterea obiectului cererii la distanță printr-un transfer de web obiect de serviciu de la un domeniu la altul, facilitatea de transmisie printr-un firewall în formă de XML-string și stocarea informațiilor de securitate sau a unui anumit utilizator utilizat de mai multe aplicații. Serializare - procesul de bi-direcțională și este destinat nu numai pentru a păstra și transmite datele într-o formă convenabilă, dar, de asemenea, o oportunitate de a crea din nou, dacă este necesar, sub forma obiectului original. Procesul invers se numește deserializare.

Spațiul de nume System.Runtime.Serialization conține clasele necesare pentru serializarea și deserializarea obiectelor.

Pentru ca un obiect să fie serializat, el trebuie să fie etichetat ca un obiect serializabil:

În plus, unele informații din obiect pot sau nu necesită salvarea și recuperarea ulterioară, în acest caz se utilizează etichetele [SerializableAttribute] și [NonSerializedAttribute].

Informațiile care trebuie colectate conțin nu numai date, ci și informații despre tipul de obiect (versiunea, limba și setările regionale și numele ansamblului).

Informațiile de bază despre serializare sunt realizate de un obiect special - Formatter.

După cum am menționat deja, distingem între serializarea binară și XML. Cu serializarea XML, informațiile sunt serializate într-un flux XML. Serializarea XML poate fi, de asemenea, utilizată pentru a serializa obiecte în fluxuri XML care respectă specificația SOAP (Simple Object Access Protocol). SOAP este un protocol bazat pe XML care este proiectat special pentru procesarea apelurilor folosind XML.

Paragraful 2. Exemplu de creare a unei clase pentru serializare binară

Deci, să creăm o soluție goală (de exemplu, cu numele myProject) a aplicației și să adăugăm o clasă care va efectua funcțiile dicționarului. În fereastra "Solutatorul Explorer", faceți clic dreapta pe fișierul proiectului și adăugați o nouă opțiune (Fig.1).

C # pentru ferestre

Figura 1. Crearea unei aplicații și adăugarea unei clase pentru serializare

C # pentru ferestre

Figura 2 Crearea unei aplicații și adăugarea unei clase pentru serializare

În codul clasei pe care vrem să facem serializabil, adăugăm obiectul [Serializabil] etichetat ca obiect serializabil:

În clasa dicționarului, adăugăm metode care fac din clasă un dicționar, de exemplu Hashtable, care oferă o colecție de perechi cheie / valoare care sunt ordonate de codul cheii hash și care vor stoca efectiv dicționarul. Când adăugați un element în colecția Hashtable, acesta este plasat într-un anumit segment, în funcție de codul hash-cheie. În viitor, căutarea prin cheie se realizează numai într-un anumit segment utilizând o cheie cheie hash. Astfel, numărul operațiilor de comparație cheie care este necesar pentru a găsi elementul este mult redus. Deci, mai întâi vom adăuga:

Apoi, aveți nevoie de metode precum numărul de valori, verificarea prezenței unui cuvânt în dicționar, traducerea unui cuvânt, adăugarea și ștergerea intrărilor în dicționar:

Paragraful 3. Lucrul la serializarea și deserializarea unei clase

În primul rând, în aplicația principală, adăugăm spațiile de nume necesare, și anume:

În consecință, noi declarăm descendentul clasei create și facem din ea clasa muncitoare.

Apoi puteți utiliza metodele de adăugare și ștergere a datelor în dicționarul descris mai sus.

Rămâne să salvați dicționarul în formă serializată și să încărcați din nou dicționarul în memorie.

Înregistrarea poate fi executată după cum urmează (sCurDir - directorul curent de pornire a aplicației - acolo vom plasa dicționarul):

Pentru a încărca un fișier dicționar serializat, puteți utiliza următoarea funcție:

Iată toate subtilitățile lucrării despre serializare binară și deserializare, citate într-un exemplu concret de lucru cu dicționarul.

Articole similare