Serialisasi dan Deserialisasi dalam C#
Serialization menukar objek kepada aliran bait dan menukarnya kepada bentuk yang boleh ditulis kepada strim. Ini dilakukan untuk menyimpannya ke memori, fail atau pangkalan data.
Operasi penyiaran berikut boleh dilakukan:
Penyirian binari
Semua ahli, malah ahli baca sahaja, akan bersiri.
Pensiri XML
Ia menyerikan medan awam dan sifat objek ke dalam aliran XML yang mematuhi dokumen Bahasa Definisi Skema XML tertentu.
Mari kita lihat contoh. Mula-mula sediakan strim:
FileStream fstream = new FileStream("d:\ew.txt", FileMode.OpenOrCreate); BinaryFormatter formatter=new BinaryFormatter();
Sekarang buat objek kelas ini dan panggil pembina dengan tiga parameter -
Employee emp = new Employee(030, "Tom", “Operations”);
lakukan siri.
formatter.Serialize(fStream, emp);
Deserialisasi ialah proses bersiri terbalik, yang melaluinya anda membaca objek daripada aliran bait.
rreeeeAtas ialah kandungan terperinci Serialisasi dan Deserialisasi dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas









DependencyInjection(DI)inC#isadesignpatternthatenhancesmodularity,testability,andmaintainabilitybyallowingclassestoreceivedependenciesexternally.1.DIpromotesloosecouplingbydecouplingobjectcreationfromusage.2.Itsimplifiestestingthroughmockobjectinject

Peranan idisposable dan menggunakan dalam C# adalah dengan cekap dan deterministik menguruskan sumber yang tidak diurus. 1. Idisposable menyediakan kaedah pelupusan (), supaya kelas dapat dengan jelas menentukan cara melepaskan sumber yang tidak diurus; 2. Pernyataan yang menggunakan memastikan yang melupuskan () secara automatik dipanggil apabila objek itu keluar dari skop, memudahkan pengurusan sumber dan mengelakkan kebocoran; 3. Apabila menggunakannya, sila ambil perhatian bahawa objek mesti melaksanakan idisposable, boleh mengisytiharkan pelbagai objek, dan harus selalu menggunakan menggunakan jenis seperti Streamreader; 4. Amalan terbaik biasa termasuk tidak bergantung kepada pemusnah untuk membersihkan, mengendalikan objek bersarang dengan betul, dan melaksanakan corak pelupusan (bool).

Prinsip pepejal adalah lima prinsip reka bentuk untuk meningkatkan pemeliharaan kod dan skalabilitas dalam pengaturcaraan berorientasikan objek. Mereka adalah: 1. Prinsip Tanggungjawab Tunggal (SRP) menghendaki kelas hanya menganggap satu tanggungjawab, seperti memisahkan generasi laporan dan menghantar e -mel; 2. Prinsip pembukaan dan penutupan (OCP) menekankan bahawa lanjutan disokong melalui antara muka atau kelas abstrak tanpa mengubah kod asal, seperti menggunakan antara muka ishape untuk merealisasikan pengiraan kawasan grafik yang berbeza; 3. Prinsip Penggantian Richter (LSP) menghendaki subkelas boleh menggantikan kelas induk tanpa memusnahkan logik, seperti persegi tidak boleh tersilap mewarisi segi empat tepat, mengakibatkan tingkah laku yang tidak normal; 4. Prinsip Pengasingan Antara Muka (ISP) menganjurkan definisi antara muka halus, seperti percetakan dan fungsi pengimbasan untuk mengelakkan kebergantungan yang berlebihan; 5. Prinsip Inversi Ketergantungan (DIP) menganjurkan

Dalam C#, perbezaan utama antara jenis nilai dan jenis rujukan adalah dalam cara penyimpanan data dan pengurusan memori. 1. Jenis nilai secara langsung mengandungi data, biasanya disimpan pada timbunan, seperti int, float, bool dan struct, dengan kelajuan akses cepat dan kitaran hayat pendek; Jenis rujukan menyimpan rujukan kepada data sebenar, objek itu sendiri disimpan pada timbunan, seperti kelas, rentetan atau objek, dan pembolehubah rujukan disimpan pada timbunan, bergantung pada pengumpulan sampah dan pembersihan. 2. Salin nilai sebenar apabila jenis nilai diberikan, dan mengubah suai salinan tidak menjejaskan nilai asal; Salin alamat rujukan apabila jenis rujukan diberikan, dan kedua -dua pembolehubah menunjuk ke objek yang sama, dan pengubahsuaian akan mempengaruhi satu sama lain. 3. Jenis nilai tidak boleh dibatalkan secara lalai, melainkan jika jenis yang boleh dibatalkan seperti int? digunakan; Jenis rujukan secara semula jadi boleh menjadi nul

Pokok ekspresi digunakan dalam C# untuk mewakili kod sebagai data. Mereka membolehkan pemaju menganalisis, mengubahsuai, atau runtime untuk menjana kod baru dengan membina struktur pokok yang menggambarkan operasi kod dan bukannya melaksanakan kod secara langsung. Komponen terasnya termasuk ungkapan parameter, ungkapan binari, dan ekspresi lambda. Kegunaan umum adalah linqtosql dan ort (seperti entityframework), di mana pokok ekspresi membolehkan pertanyaan C# linq diterjemahkan ke dalam pernyataan SQL. Kegunaan lain termasuk penapisan dinamik dan pertanyaan, sistem bersiri atau skrip, rangka kerja simulasi, dan bekas suntikan pergantungan. Walau bagaimanapun, lebih sesuai untuk menggunakan fungsi biasa atau ekspresi lambda tanpa memerlukan pemeriksaan atau logik penukaran. 1. Membina pertanyaan dinamik; 2. Terjemahkannya ke dalam bentuk lain

ASP.Netcore adalah rangka kerja lintas-platform, rangka kerja berprestasi tinggi yang dilancarkan oleh Microsoft, yang direka untuk pembangunan aplikasi web moden di C#. Kelebihan terasnya termasuk: 1. 2. Senibina modular, yang meningkatkan prestasi dan fleksibiliti melalui fungsi pemuatan saluran paip middleware; 3. Suntikan ketergantungan terbina dalam (DI), menyokong pengurusan kitaran hayat, dan meningkatkan kebolehpercayaan dan kebolehlaksanaan kod; 4 Prestasi prestasi tinggi, berdasarkan pelayan Kestrel, dapat mengendalikan permintaan serentak yang tinggi di bawah konfigurasi lalai, sesuai untuk senario dengan sumber terhad atau keperluan kelajuan tindak balas yang tinggi.

CustomAttributes adalah mekanisme yang digunakan dalam C# untuk melampirkan metadata ke elemen kod. Fungsi terasnya adalah untuk mewarisi kelas.attribute kelas dan membaca refleksi pada masa runtime untuk melaksanakan fungsi seperti pembalakan, kawalan kebenaran, dan lain -lain. Khususnya, ia termasuk: 1. 2. Apabila membuat, anda perlu menentukan kelas yang diwarisi dari atribut, dan menggunakan atributeUsage untuk menentukan sasaran aplikasi; 3. Selepas permohonan, anda boleh mendapatkan maklumat ciri melalui refleksi, seperti menggunakan attribute.getCustomatTribute ();

Pengumpul sampah .NET mengoptimumkan prestasi pengurusan memori dengan membahagikan objek ke dalam tiga generasi (Gen0, Gen1, Gen2). Objek baru tergolong dalam Gen0, dan objek yang belum dikeluarkan telah secara beransur -ansur dinaikkan ke generasi yang lebih tinggi selepas beberapa kitar semula. 1. Gen0 mengandungi objek yang baru diperuntukkan, yang biasanya berpanjangan; 2. Objek yang masih hidup yang telah menjalani kitar semula memasuki Gen1; 3. Objek yang masih hidup yang masih bertahan selepas kitar semula memasuki Gen2. Objek jangka panjang seperti cache atau singleton akhirnya akan ditempatkan di generasi ini. GC mengutamakan kitar semula objek generasi rendah, mengurangkan julat memori setiap imbasan, dengan itu meningkatkan kecekapan. Dalam kebanyakan kes, pemaju tidak perlu mengambil berat tentang mekanisme penjanaan, tetapi dalam senario seperti peruntukan frekuensi tinggi, pengendalian peristiwa yang tidak wajar, dan penggunaan finalisasi atau idisposable yang salah,
