我有一个在内存中加载了许多集合的类。是否有可能如何将这个类的所有数据保存到文件中,以便稍后将其重新加载到内存中?有一个接口可以处理所有这些吗?是否可以将任意数据保存到C#文件中?
1
A
回答
4
你所描述被称为系列化前面添加[Serializable]属性。您将对象搜索到可存储在磁盘上的某种数据格式,然后您可以稍后将这些数据反序列化为对象。有这样做的方法很多,但第一步是使类序列化的,通过添加Serializable属性:
[Serializable]
public class YourClass
{
// the class goes here
}
然后你就可以使用实例的XmlSerializer
类来处理序列化/反序列化。
更新
我要指出,你可以使用XmlSerializer
即使你的类不与Serializable
属性来修饰。但是,其他一些序列化机制确实需要该属性。
1
使用BinaryFormatter序列化实例
而且在类定义
0
您可以使用.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;
}
}
相关问题
- 1. 是否可以在导出时将任意数据保存在SVG中?
- 2. 将数据保存到文件中C++
- 3. 是否可以在GAE Golang Blobstore中存储任意数据?
- 4. 是否可以将Hadoop Counter数据保存到HDFS中?
- 5. 是否可以将文件保存到桌面? Windows Store
- 6. 是否可以将文件保存到网络路径?
- 7. 是否可以将数据从Python存储在Access文件中?
- 8. 是否可以将NSMutableArray或NSDictionary数据保存为iOS中的文件?
- 9. 是否可以将NDbUnit测试数据保存在单独的XML文件中?
- 10. 是否有可能将任意数据附加到实际的文件在PHP
- 11. 是否可以在C++中交换任意大小的数组?
- 12. 是否可以将MySQL数据库转储到seed.rb文件中?
- 13. 是否可以将日志文件转储到数据库中?
- 14. 是否可以使用createObjectURL保存到文件夹中?
- 15. 将Int数据保存到C++中的文本文件中
- 16. Laravel - 是否可以从外部网站将数据保存到mySQL数据库?
- 17. 是否可以在表中插入任意数据?
- 18. 是否可以将C数据类型存储在变量中?
- 19. 将文件保存到数据库中
- 20. 保存到数据库中而不是保存到文件中?
- 21. 是否可以输出文件? (注意,不是“到”文件)
- 22. 是否有可能将任何任意文件转换为字符串? (C#)
- 23. 将文本文件保存到mysql数据库中c#
- 24. 是否可以在文件内保存有关mdf文件的元数据?
- 25. 我们可以将textarea中的数据保存到文本文件中吗?
- 26. 是否可以使用NSKeyedArchiver将NSMutableArray保存到核心数据中?
- 27. 是否可以将一个变量从javascript保存到质量数据集中?
- 28. 是否可以将VBO保存在C++类中?
- 29. 是否可以使用Angular 2将表单值保存到本地文件中?
- 30. 是否可以将Python解释器的状态保存到文件中?
XML序列化是有史以来最简单的事情! – 2009-10-25 10:44:15