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

溫馨提示×

C#中Map集合的序列化與反序列化方法

c#
小樊
97
2024-09-04 15:56:32
欄目: 編程語言

在C#中,可以使用System.Runtime.Serialization命名空間中的DataContractSerializer類來實現Map集合(字典)的序列化和反序列化

首先,需要引入System.Runtime.Serialization命名空間:

using System.Runtime.Serialization;

接下來,定義一個包含字典的數據協定類:

[DataContract]
public class MapContainer
{
    [DataMember]
    public Dictionary<string, string> Map { get; set; }
}

然后,創建一個DataContractSerializer實例,用于序列化和反序列化字典:

DataContractSerializer serializer = new DataContractSerializer(typeof(MapContainer));

序列化:將字典轉換為XML格式的字符串。

MapContainer container = new MapContainer
{
    Map = new Dictionary<string, string>
    {
        { "key1", "value1" },
        { "key2", "value2" }
    }
};

using (MemoryStream stream = new MemoryStream())
{
    serializer.WriteObject(stream, container);
    stream.Position = 0;
    using (StreamReader reader = new StreamReader(stream))
    {
        string xmlString = reader.ReadToEnd();
        Console.WriteLine("Serialized XML:");
        Console.WriteLine(xmlString);
    }
}

反序列化:將XML格式的字符串轉換回字典。

string xmlString = "<MapContainer xmlns=\"http://schemas.datacontract.org/2004/07/YourNamespace\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><Map><item><key>key1</key<value>value1</value></item><item><key>key2</key<value>value2</value></item></Map></MapContainer>";

using (MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(xmlString)))
{
    MapContainer deserializedContainer = (MapContainer)serializer.ReadObject(stream);
    Console.WriteLine("Deserialized Map:");
    foreach (var item in deserializedContainer.Map)
    {
        Console.WriteLine($"Key: {item.Key}, Value: {item.Value}");
    }
}

注意:在這個示例中,我們使用了MemoryStreamStreamReader來處理XML字符串。你也可以使用其他方法,如文件流或網絡流,根據實際需求進行調整。

0
缙云县| 洛阳市| 榕江县| 鹤山市| 礼泉县| 东方市| 英山县| 高雄县| 兴山县| 旬邑县| 穆棱市| 江门市| 类乌齐县| 通河县| 巴马| 慈溪市| 宜都市| 宜宾市| 桃园市| 晴隆县| 潼关县| 错那县| 景洪市| 建水县| 阿勒泰市| 布尔津县| 汉沽区| 河北区| 汤阴县| 大悟县| 五台县| 苗栗市| 嘉鱼县| 潮安县| 北宁市| 民丰县| 恩平市| 卓尼县| 泸溪县| 孟连| 阳城县|