我有一個在內存中加載了許多集合的類。是否有可能如何將這個類的所有數據保存到文件中,以便稍後將其重新加載到內存中?有一個接口可以處理所有這些嗎?是否可以將任意數據保存到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. 是否可以將Hadoop Counter數據保存到HDFS中?
- 4. 是否可以將文件保存到網絡路徑?
- 5. 是否可以將NSMutableArray或NSDictionary數據保存爲iOS中的文件?
- 6. 是否可以將NDbUnit測試數據保存在單獨的XML文件中?
- 7. 是否可以將MySQL數據庫轉儲到seed.rb文件中?
- 8. 是否可以使用createObjectURL保存到文件夾中?
- 9. Laravel - 是否可以從外部網站將數據保存到mySQL數據庫?
- 10. 將文件保存到數據庫中
- 11. 將文本文件保存到mysql數據庫中c#
- 12. 我們可以將textarea中的數據保存到文本文件中嗎?
- 13. 是否可以在文件內保存有關mdf文件的元數據?
- 14. 是否可以將一個變量從javascript保存到質量數據集中?
- 15. 是否可以使用NSKeyedArchiver將NSMutableArray保存到核心數據中?
- 16. 是否可以使用Angular 2將表單值保存到本地文件中?
- 17. 是否可以將PHP PEAR SMTP Object保存爲EML文件?
- 18. 是否可以將VBO保存在C++類中?
- 19. 是否可以將數據庫文件複製到SD卡?
- 20. 是否可以將FLV文件嵌入到閃存中?
- 21. 是否可以將Excel文件加載到內存中?
- 22. 將TCP服務器數據包保存到C++中的文件
- 23. 將數據保存到txt文件中? C++
- 24. 是否可以向ObjectifiedElement實例添加任意數據?
- 25. 是否將任意數據附加到ELF文件違反了ELF規範?
- 26. 是否可以將文件從phonegap保存在緩存目錄中?
- 27. 是否可以在iOS中將NSMutableArray保存到磁盤?
- 28. 是否可以將值列表保存到SQLite列中?
- 29. 將SQLite數據庫保存到文件?
- 30. 將數據保存到plist文件
XML序列化是有史以來最簡單的事情! – 2009-10-25 10:44:15