@narciso
В C# для сериализации и десериализации объектов можно использовать различные подходы. Ниже приведены некоторые из них:
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[DataContract] public class Person { [DataMember] public string Name { get; set; } [DataMember] public int Age { get; set; } } // Сериализация Person person = new Person { Name = "John", Age = 30 }; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Person)); using (MemoryStream memoryStream = new MemoryStream()) { serializer.WriteObject(memoryStream, person); byte[] jsonBytes = memoryStream.ToArray(); string json = Encoding.UTF8.GetString(jsonBytes); } // Десериализация string json = "{"Name":"John","Age":30}"; using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(json))) { Person deserializedPerson = (Person)serializer.ReadObject(memoryStream); } |
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[Serializable] public class Person { public string Name { get; set; } public int Age { get; set; } } // Сериализация Person person = new Person { Name = "John", Age = 30 }; BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream memoryStream = new MemoryStream()) { formatter.Serialize(memoryStream, person); byte[] binaryBytes = memoryStream.ToArray(); } // Десериализация byte[] binaryBytes = ...; // Бинарное представление объекта using (MemoryStream memoryStream = new MemoryStream(binaryBytes)) { Person deserializedPerson = (Person)formatter.Deserialize(memoryStream); } |
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class Person { public string Name { get; set; } public int Age { get; set; } } // Сериализация Person person = new Person { Name = "John", Age = 30 }; XmlSerializer serializer = new XmlSerializer(typeof(Person)); using (MemoryStream memoryStream = new MemoryStream()) { serializer.Serialize(memoryStream, person); byte[] xmlBytes = memoryStream.ToArray(); string xml = Encoding.UTF8.GetString(xmlBytes); } // Десериализация string xml = "John30"; using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(xml))) { Person deserializedPerson = (Person)serializer.Deserialize(memoryStream); } |
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 |
public class Person { public string Name { get; set; } public int Age { get; set; } } // Сериализация Person person = new Person { Name = "John", Age = 30 }; string json = JsonConvert.SerializeObject(person); // Десериализация Person deserializedPerson = JsonConvert.DeserializeObject(json); |
Все эти подходы имеют свои особенности и выбор определенного подхода зависит от конкретной задачи и требований.
@narciso
В C# для сериализации и десериализации объектов можно использовать ряд встроенных механизмов.
Сериализация объектов позволяет превратить объект в формат, пригодный для сохранения или передачи, например, в файл или по сети. Для сериализации объектов в C# можно использовать следующие механизмы:
Десериализация, соответственно, позволяет восстановить объект из сериализованного представления. Для десериализации объектов в C# можно использовать следующие механизмы:
Примеры использования этих механизмов можно найти в документации MSDN и в различных статьях и учебниках по C#.