.net中的序列化详解
.net中的序列化
常见的序列化格式和方法
在.net中,常见的序列化格式主要有json,二进制和xml,总结如下表格。
回到顶部
注意事项
关于实体特性标注规则:
1,.net中所有用于序列化的实体的class上应该加上[Serializable]标记,如果不加的话,json序列化的时候没有问题,但是使用BinaryFormatter进行二进制序列化的时候就会报错。
2,如果应用在wcf中,所有实体的class上还应该加上[DataContract]标记,字段上要加[DataMember]。
3,在使用newtonsoft.json的时候,如果实体类加了[DataContract],有些字段加了[DataMember],而有些字段没有加,但是序列化的时候也要包含那些没有加[DataMember]的字段,可以在实体类上加[JsonObject(MemberSerialization.OptOut)]来解决,表示输出全部的公共字段。
4,使用newtonsoft.json时,System.Web.UI.WebControls.ListItem不能序列化,解决方法是,自定义一个类并标记[Serializable]。
回到顶部
总结
1,如果是json格式,NewtonSoft.Json最通用(可以处理循环引用),虽然它不是速度最快的。
2,如果是xml格式,就使用.net自带的XmlSerializer。
3,如果是二进制格式,就使用.net自带的BinaryFormatter,虽然Protobuf速度很快,但是要加序号很麻烦。
Atas ialah kandungan terperinci .net中的序列化详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

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



Sama ada anda seorang pemula atau profesional yang berpengalaman, menguasai C# akan membuka jalan untuk kerjaya anda.

Perkembangan teknologi kecerdasan buatan (AI) sedang giat dijalankan hari ini, dan ia telah menunjukkan potensi dan pengaruh yang besar dalam pelbagai bidang. Hari ini Dayao akan berkongsi dengan anda 4 rangka kerja projek berkaitan LLM model AI sumber terbuka .NET, dengan harapan dapat memberi anda sedikit rujukan. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel ialah kit pembangunan perisian sumber terbuka (SDK) yang direka untuk menyepadukan model bahasa besar (LLM) seperti OpenAI, Azure

Flexjson ialah perpustakaan ringan untuk mensiri dan menyahsiri objek Java ke dan dari format JSON. Kita boleh menyusun senarai objek menggunakan kaedah serialize() kelas JSONSerializer. Kaedah ini melakukan serialisasi cetek pada contoh sasaran. Kita perlu menghantar senarai objek jenis senarai sebagai parameter kepada kaedah serialize(). Contoh sintaks publicStringserialize(Objecttarget) importflexjson.JSONSerializer;importjava.util.*;publicclassJsonSerial

Kesan siri pada prestasi Java: Proses siri bergantung pada refleksi, yang akan menjejaskan prestasi dengan ketara. Serialisasi memerlukan penciptaan aliran bait untuk menyimpan data objek, mengakibatkan peruntukan memori dan kos pemprosesan. Mensiri objek besar menggunakan banyak memori dan masa. Objek bersiri meningkatkan beban apabila dihantar melalui rangkaian.

Kemahiran pemprosesan data PHP: Cara menggunakan fungsi bersiri dan menyahsiri untuk melaksanakan pensirilan data dan penyahseririan Pensirilan dan penyahsiriran ialah salah satu kemahiran pemprosesan data yang biasa digunakan dalam sains komputer. Dalam PHP, kita boleh menggunakan fungsi serialize() dan unserialize() untuk melaksanakan operasi bersiri dan penyahserikan data. Artikel ini akan memberi anda pengenalan terperinci tentang cara menggunakan kedua-dua fungsi ini dan memberikan contoh kod yang berkaitan. 1. Apakah yang dimaksudkan dengan serialisasi dan deserialisasi dalam pengaturcaraan komputer?

Panduan Pensirilan dan Penyahserikatan Perpustakaan C++ Pensirian: Mencipta aliran output dan menukarnya kepada format arkib. Mensiri objek ke dalam arkib. Penyahserialisasian: Mencipta aliran input dan memulihkannya daripada format arkib. Nyahserialisasi objek daripada arkib. Contoh praktikal: Serialisasi: Mencipta aliran keluaran. Buat objek arkib. Cipta dan sirikan objek ke dalam arkib. Penyahserikatan: Buat aliran input. Buat objek arkib. Cipta objek dan deserialisasikannya daripada arkib.

@JsonPropertyOrder ialah anotasi yang digunakan pada peringkat kelas. Ia mengambil sebagai atribut senarai medan yang mentakrifkan susunan medan muncul dalam rentetan yang dijana oleh siri JSON objek. Sifat yang disertakan dalam pengisytiharan anotasi boleh disirikan terlebih dahulu (mengikut susunan ia ditakrifkan), diikuti oleh mana-mana sifat yang tidak termasuk dalam definisi. Contoh sintaks public@interfaceJsonPropertyOrder importcom.fasterxml.jackson.core.*;importcom.fasterxml.jackson.databind.*;importcom.fasterxml.jac

Antara muka tidak boleh bersiri secara langsung Kelas abstrak boleh bersiri tetapi hanya jika ia tidak mengandungi medan bukan statik, bukan sementara atau mengatasi kaedah writeObject() dan readObject() boleh dilaksanakan melalui kelas konkrit yang melaksanakan antara muka atau mengatasi writeObject() dan readObject pelaksanaan kelas Abstrak kaedah ().
