Joh*_*0te 22 .net c# persistent-storage
我有一个需要极少持久存储的应用程序.实际上,我们谈论的是<30个整数.所有应用程序的需求是在下次启动时知道那些整数(并且整数在运行时会发生变化).
数据库对此来说太过分了,但我并不特别想要使用文本文件.
C#是否有任何机制可以在运行之间保持这样的小值?我注意到你可以将东西存储在资源文件和其他一些地方 - 我不知道你是否可以在运行时更改它们.我刚刚学习C#和.NET来完成一份新工作,所以如果这是一个愚蠢的问题,请道歉!
Zac*_*ary 23
这是另一篇SO帖子的模糊,解释了如何设置应用程序设置,这是一个简单的基于文件的读/写值解决方案.
" 如果使用Visual Studio,则可以很容易地获得可持久设置.在解决方案资源管理器中右键单击项目,选择"属性".如果设置不存在,请选择"设置"选项卡,单击超链接.使用"设置"选项卡创建应用程序设置.Visual Studio创建文件Settings.settings和Settings.Designer.settings,其中包含从ApplicationSettingsBase继承的单例类设置.您可以从代码中访问此类以读取/写入应用程序设置: "
Settings.Default["SomeProperty"] = "Some Value";
Settings.Default.Save(); // Saves settings in application configuration file
Run Code Online (Sandbox Code Playgroud)
我会使用embeeded sqlite数据库.
http://www.codeproject.com/Articles/22165/Using-SQLite-in-your-C-Application
SQLite是一个小型,快速且可嵌入的数据库,其中数据库引擎和接口组合到一个库中.它还能够将所有数据存储在单个文件中.因此,如果您的应用程序需要独立的数据库,那么SQLite可能是您的最佳选择.当然,选择SQLite还有其他原因,包括:
SQLite占用的内存很少,访问数据库只需要一个库,因此非常适合嵌入式数据库应用程序.SQLite已经移植到许多平台上,甚至可以在Windows CE和Palm OS上运行.SQLite符合ACID标准,符合所有四个标准 - 原子性,一致性,隔离性和持久性.SQLite实现了ANSI-92 SQL标准的一个大子集,包括视图,子查询和触发器.没有额外的数据库驱动程序的问题,需要ODBC配置.只需在您的应用程序中包含库和数据文件即可.SQLite的有C/C++,PHP,Perl,Python和Tcl的等本地语言的API,C#的Native API仍然是不存在的.
您可以将列表序列化为xml文件.这是你如何保存它:
var xs = new System.Xml.Serialization.XmlSerializer(typeof(List<int>));
List<int> ints = new List<int> { 1, 2, 3 };
using (FileStream fs = new FileStream(@"C:\store.xml", FileMode.OpenOrCreate))
{
xs.Serialize(fs, ints);
}
Run Code Online (Sandbox Code Playgroud)
检索它同样容易:
using (FileStream fs = new FileStream(@"C:\store.xml", FileMode.OpenOrCreate))
{
ints = xs.Deserialize(fs) as List<int>;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18800 次 |
最近记录: |