我想在某种DB中保存一些细节。 我认为使用像访问或mysql这样的数据库会有点矫枉过正 因此,我一直计划使用XML文件作为数据库 我的想法是以某种结构创建一个xml文件,例如:
<DB>
<Player>John</Player>
<Money>50</Money>
<Player>James</Player>
<Money>10</Money>
</DB>
然后,将此数据加载到某种集合中,在那里进行管理并覆盖xml文件。
有没有更好的方法来实现我想要做的事情?我认为我太复杂了。
编辑: 我添加了一种序列化数据并保存数据的方法:
public static DB LoadFromFile(string path)
{
FileStream fs = null;
DB db = null;
try
{
fs = File.Open(path, FileMode.Open);
var serializer = new XmlSerializer(typeof(DB));
db = (DB)serializer.Deserialize(fs);
}
catch
{
}
if (fs != null)
{
fs.Close();
}
return db;
}
public static void SaveToFile(string path, object objData)
{
var fs = File.Open(path, FileMode.Create);
var serializer = new XmlSerializer(objData.GetType());
try
{
serializer.Serialize(fs, objData);
}
catch
{
}
fs.Close();
}
当我在调用SaveToFile后尝试使用LoadFromFile时,我得到了: + InnerException {&#34;出乎意料。&#34;} System.Exception {System.InvalidOperationException}
答案 0 :(得分:2)
你应该像这样使用XmlSerializer
public class User
{
public string Player { get; set; }
public string Money{ get; set; }
}
public class Database
{
public List<User> User { get; set; }
public static Database LoadFromFile(string path)
{
var fs = File.Open(path);
var serializer = new XmlSerializer(typeof(DataBase));
var db = (Database)serializer.Deserialize(fs);
return db;
}
}
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(v=vs.110).aspx