我是C#和Windows Phone开发的新手,我需要为学校项目做app 我有简单的课程,我希望保存它以便在下次开始申请时可以访问 最好(也是最简单)的方法是什么?使用文件,数据库或其他一些应用程序内存?
这是我的班级:
public class Place
{
private string name;
private string description;
private int distance;
private bool enabled;
private GeoCoordinate coordinates;
}
我需要存储多个类的实例。
答案 0 :(得分:2)
没有“最佳”的方式来做到这一点;这取决于你将如何使用它。
一种简单的方法是使用序列化,XML,JSON,二进制或任何你想要的。我个人喜欢JSON,因为它非常轻巧,易于阅读。您可以使用JSON.NET库将对象序列化为JSON。
例如,如果要将Place
的集合序列化为文件,可以执行以下操作:
static async Task SavePlacesAsync(ICollection<Place> places)
{
var serializer = new JsonSerializer();
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.CreateFileAsync("places.json", CreationCollisionOption.ReplaceExisting);
using (var stream = await file.OpenStreamForWriteAsync())
using (var writer = new StreamWriter(stream))
{
serializer.Serialize(writer, places);
}
}
并从文件中读回来:
static async Task<ICollection<Place>> LoadPlacesAsync()
{
try
{
var serializer = new JsonSerializer();
var folder = ApplicationData.Current.LocalFolder;
var file = await folder.GetFileAsync("places.json");
using (var stream = await file.OpenStreamForReadAsync())
using (var reader = new StreamReader(stream))
using (var jReader = new JsonTextReader(reader))
{
return serializer.Deserialize<ICollection<Place>>(jReader, places);
}
}
catch(FileNotFoundException)
{
return new List<Place>();
}
}
答案 1 :(得分:1)
我认为使持久化对象的最简单方法是将它们存储在文件中。但是,由于IO操作所花费的时间,安全性低等原因,这不是最好的方法。
这里有一个很好的例子: