我有一个在内存中加载了许多集合的类。是否有可能将这个类及其所有数据保存到文件中,以便以后能够简单地将其重新加载到内存中?是否有可以处理所有这些的界面?

有帮助吗?

解决方案

您所描述的内容称为序列化。您可以将对象分类为可以存储在磁盘上的某种数据格式,然后可以将该数据反序列化为对象。有很多方法可以做到这一点,但第一步是通过添加Serializable属性使您的类可序列化:

[Serializable]
public class YourClass
{    
    // the class goes here
}

然后你可以使用例如 XmlSerializer 类来处理序列化/反序列化。

<强>更新结果 我应该提一下,即使您的类没有使用 Serializable 属性进行修饰,也可以使用 XmlSerializer 。但是,其他一些序列化机制确实需要该属性。

其他提示

使用 BinaryFormatter 序列化实例

在类定义

前面添加[Serializable]属性

您可以使用.Net序列化工具,只需要使用[Serializable]属性标记您的类,并且所有成员也应该可序列化

示例代码:

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

[Serializable]
class A
{
public static void Serialize(object obj,string filepath)
{
Formatter f = new BinaryFormatter();
f.Serialize(new FileStream(filepath,FileMode.Create),obj);
}
public static A Deserialize(string filepath)
{
Formatter f = new BinaryFormatter();
return  f.Deserialize(new FileStream(filepath, FileMode.Open)) as A;
}
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top