91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C#序列化與反序列化如何處理復雜數據

c#
小樊
84
2024-10-24 10:58:27
欄目: 編程語言

在C#中,處理復雜數據時,可以使用System.Runtime.Serialization命名空間下的類來進行序列化和反序列化。以下是一個簡單的示例,展示了如何使用這些類處理包含自定義對象和集合的復雜數據。

首先,創建一個自定義類Person

using System.Runtime.Serialization;

[DataContract]
public class Person
{
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    public int Age { get; set; }

    [DataMember]
    public Address Address { get; set; }
}

[DataContract]
public class Address
{
    [DataMember]
    public string Street { get; set; }

    [DataMember]
    public string City { get; set; }

    [DataMember]
    public string State { get; set; }
}

這里,我們使用[DataContract]屬性標記類,以便在序列化和反序列化過程中包含這些類的成員。[DataMember]屬性用于指定要序列化和反序列化的成員。

接下來,創建一個包含自定義對象集合的類People

using System.Collections.Generic;
using System.Runtime.Serialization;

[DataContract]
public class People
{
    [DataMember]
    public List<Person> Persons { get; set; }
}

現在,我們可以使用DataContractSerializer類進行序列化和反序列化:

using System;
using System.IO;
using System.Runtime.Serialization;

class Program
{
    static void Main()
    {
        // 創建一個包含自定義對象集合的實例
        People people = new People
        {
            Persons = new List<Person>
            {
                new Person { Name = "Alice", Age = 30, Address = new Address { Street = "123 Main St", City = "New York", State = "NY" } },
                new Person { Name = "Bob", Age = 25, Address = new Address { Street = "456 Elm St", City = "Los Angeles", State = "CA" } }
            }
        };

        // 序列化對象
        DataContractSerializer serializer = new DataContractSerializer(typeof(People));
        using (StringWriter writer = new StringWriter())
        {
            serializer.WriteObject(writer, people);
            string serializedData = writer.ToString();
            Console.WriteLine("Serialized data:");
            Console.WriteLine(serializedData);
        }

        // 反序列化對象
        using (StringReader reader = new StringReader(serializedData))
        {
            People deserializedPeople = (People)serializer.ReadObject(reader);
            Console.WriteLine("\nDeserialized data:");
            foreach (Person person in deserializedPeople.Persons)
            {
                Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, Address: {person.Address.Street}, {person.Address.City}, {person.Address.State}");
            }
        }
    }
}

這個示例中,我們首先創建了一個包含兩個Person對象的People實例。然后,我們使用DataContractSerializer將對象序列化為字符串,再將字符串反序列化為對象。

注意:在實際應用中,你可能需要處理更復雜的數據結構和類型,例如嵌套的對象、集合和字典等。這個示例展示了如何使用DataContractSerializer處理這些情況。

0
邢台县| 威宁| 永年县| 景东| 台中市| 滦南县| 临高县| 阿巴嘎旗| 太白县| 衡阳市| 邯郸市| 蒙山县| 乌拉特中旗| 巫溪县| 响水县| 红原县| 南开区| 许昌市| 彭州市| 库伦旗| 乡宁县| 都昌县| 郸城县| 宜章县| 北海市| 茌平县| 江都市| 庄河市| 海晏县| 肥城市| 永济市| 秭归县| 嘉善县| 武义县| 龙井市| 婺源县| 金湖县| 井陉县| 邛崃市| 普陀区| 扶风县|