Menyimpan dan memulihkan objek C#: bersiri dan penyahserikatan
Serialization menyimpan data dalam format mudah alih, menjadikannya lebih mudah untuk memindahkan objek antara aplikasi, sistem atau mesin yang berbeza.
Untuk menyerikan objek, anda mesti menggunakan tag atribut [Serializable]
dan sertakan pembina tanpa parameter. Selain itu, atribut [XmlIgnore]
dan [JsonIgnore]
boleh digunakan untuk mengecualikan atribut atau medan tertentu.
Contoh
Pertimbangkan yang berikut SomeClass
:
<code class="language-csharp">[Serializable] public class SomeClass { public string someProperty { get; set; } } SomeClass object1 = new SomeClass { someProperty = "someString" };</code>
Simpan ke fail
Siri Perduaan:
<code class="language-csharp"> BinaryFormatter binaryFormatter = new BinaryFormatter(); using (Stream stream = File.Create("object1.bin")) { binaryFormatter.Serialize(stream, object1); }</code>
Siri XML:
<code class="language-csharp"> XmlSerializer serializer = new XmlSerializer(typeof(SomeClass)); using (TextWriter writer = new StreamWriter("object1.xml")) { serializer.Serialize(writer, object1); }</code>
JSONSerialization:
<code class="language-csharp"> using (StreamWriter writer = new StreamWriter("object1.json")) { writer.Write(JsonConvert.SerializeObject(object1)); }</code>
Pulihkan daripada Fail
Penyahserikatan Perduaan:
<code class="language-csharp"> BinaryFormatter binaryFormatter = new BinaryFormatter(); using (Stream stream = File.OpenRead("object1.bin")) { object1 = (SomeClass)binaryFormatter.Deserialize(stream); }</code>
Penyahserikatan XML:
<code class="language-csharp"> XmlSerializer serializer = new XmlSerializer(typeof(SomeClass)); using (TextReader reader = new StreamReader("object1.xml")) { object1 = (SomeClass)serializer.Deserialize(reader); }</code>
Deserialisasi JSON (JsonDeserialization):
<code class="language-csharp"> using (StreamReader reader = new StreamReader("object1.json")) { object1 = JsonConvert.DeserializeObject<SomeClass>(reader.ReadToEnd()); }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mensiri dan Menyahseri Objek dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!