C# 개체 저장 및 복원: 직렬화 및 역직렬화
직렬화는 데이터를 이식 가능한 형식으로 저장하므로 다양한 애플리케이션, 시스템 또는 기계 간에 객체를 더 쉽게 전송할 수 있습니다.
객체를 직렬화하려면 [Serializable]
속성 태그를 사용하고 매개변수 없는 생성자를 포함해야 합니다. 또한 [XmlIgnore]
및 [JsonIgnore]
속성을 사용하여 특정 속성이나 필드를 제외할 수 있습니다.
예
다음 사항을 고려하세요SomeClass
:
<code class="language-csharp">[Serializable] public class SomeClass { public string someProperty { get; set; } } SomeClass object1 = new SomeClass { someProperty = "someString" };</code>
파일로 저장
바이너리 직렬화:
<code class="language-csharp"> BinaryFormatter binaryFormatter = new BinaryFormatter(); using (Stream stream = File.Create("object1.bin")) { binaryFormatter.Serialize(stream, object1); }</code>
XML 직렬화:
<code class="language-csharp"> XmlSerializer serializer = new XmlSerializer(typeof(SomeClass)); using (TextWriter writer = new StreamWriter("object1.xml")) { serializer.Serialize(writer, object1); }</code>
JSON직렬화:
<code class="language-csharp"> using (StreamWriter writer = new StreamWriter("object1.json")) { writer.Write(JsonConvert.SerializeObject(object1)); }</code>
파일에서 복구
이진 역직렬화:
<code class="language-csharp"> BinaryFormatter binaryFormatter = new BinaryFormatter(); using (Stream stream = File.OpenRead("object1.bin")) { object1 = (SomeClass)binaryFormatter.Deserialize(stream); }</code>
XML 역직렬화:
<code class="language-csharp"> XmlSerializer serializer = new XmlSerializer(typeof(SomeClass)); using (TextReader reader = new StreamReader("object1.xml")) { object1 = (SomeClass)serializer.Deserialize(reader); }</code>
JSON 역직렬화(JsonDeserialization):
<code class="language-csharp"> using (StreamReader reader = new StreamReader("object1.json")) { object1 = JsonConvert.DeserializeObject<SomeClass>(reader.ReadToEnd()); }</code>
위 내용은 C#에서 개체를 직렬화 및 역직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!