温馨提示×

C# Hashtable的序列化方法

c#
小樊
83
2024-07-13 12:02:28
栏目: 编程语言

可以使用BinaryFormatter类来序列化Hashtable对象。以下是一个示例代码:

using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

class Program
{
    static void Main()
    {
        Hashtable hashtable = new Hashtable();
        hashtable.Add("key1", "value1");
        hashtable.Add("key2", "value2");
        
        SerializeHashtable(hashtable, "hashtable.dat");
        
        Hashtable deserializedHashtable = DeserializeHashtable("hashtable.dat");
        
        foreach (DictionaryEntry entry in deserializedHashtable)
        {
            Console.WriteLine($"{entry.Key}: {entry.Value}");
        }
    }
    
    static void SerializeHashtable(Hashtable hashtable, string filePath)
    {
        using (FileStream fileStream = new FileStream(filePath, FileMode.Create))
        {
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            binaryFormatter.Serialize(fileStream, hashtable);
        }
    }
    
    static Hashtable DeserializeHashtable(string filePath)
    {
        using (FileStream fileStream = new FileStream(filePath, FileMode.Open))
        {
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            return (Hashtable)binaryFormatter.Deserialize(fileStream);
        }
    }
}

在这个示例中,首先创建了一个Hashtable对象并填充了一些数据。然后使用SerializeHashtable方法将Hashtable对象序列化到文件中,再使用DeserializeHashtable方法从文件中反序列化出Hashtable对象。最后遍历并打印Hashtable对象中的键值对。

0