C# 编写/读取类的最简单方法
我是C#和Windows Phone开发的新手,我需要为学校项目制作应用程序。C# 编写/读取类的最简单方法,c#,windows-phone-8,visual-studio-2013,C#,Windows Phone 8,Visual Studio 2013,我是C#和Windows Phone开发的新手,我需要为学校项目制作应用程序。 我有一个简单的类,我想保存它以便以后在应用程序的下一次启动时访问。 最好(也是最简单)的方法是什么?使用文件、数据库或其他应用程序内存 这是我的班级: public class Place { private string name; private string description; private int distance; private bool enabled;
我有一个简单的类,我想保存它以便以后在应用程序的下一次启动时访问。
最好(也是最简单)的方法是什么?使用文件、数据库或其他应用程序内存 这是我的班级:
public class Place
{
private string name;
private string description;
private int distance;
private bool enabled;
private GeoCoordinate coordinates;
}
我需要存储类的多个实例 没有“最好”的方法;这取决于你将如何使用它
一种简单的方法是使用序列化,将其转换为XML、JSON、二进制或任何您想要的内容。我个人喜欢JSON,因为它非常轻量级,对人来说也很容易阅读。您可以使用该库将对象序列化为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);
}
}
静态异步任务保存位置同步(ICollection位置)
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.CreateFileAsync(“places.json”,CreationCollisionOption.ReplaceExisting);
使用(var stream=await file.OpenStreamForWriteAsync())
使用(var writer=新的StreamWriter(流))
{
序列化器。序列化(编写器、位置);
}
}
要从文件中读回,请执行以下操作:
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>();
}
}
静态异步任务LoadPlacesAsync()
{
尝试
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.GetFileAsync(“places.json”);
使用(var stream=await file.OpenStreamForReadAsync())
使用(变量读取器=新的流读取器(流))
使用(var jReader=newjsontextreader(读取器))
{
返回序列化程序。反序列化(jReader,places);
}
}
捕获(FileNotFoundException)
{
返回新列表();
}
}
没有“最好”的方法;这取决于你将如何使用它
一种简单的方法是使用序列化,将其转换为XML、JSON、二进制或任何您想要的内容。我个人喜欢JSON,因为它非常轻量级,对人来说也很容易阅读。您可以使用该库将对象序列化为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);
}
}
静态异步任务保存位置同步(ICollection位置)
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.CreateFileAsync(“places.json”,CreationCollisionOption.ReplaceExisting);
使用(var stream=await file.OpenStreamForWriteAsync())
使用(var writer=新的StreamWriter(流))
{
序列化器。序列化(编写器、位置);
}
}
要从文件中读回,请执行以下操作:
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>();
}
}
静态异步任务LoadPlacesAsync()
{
尝试
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.GetFileAsync(“places.json”);
使用(var stream=await file.OpenStreamForReadAsync())
使用(变量读取器=新的流读取器(流))
使用(var jReader=newjsontextreader(读取器))
{
返回序列化程序。反序列化(jReader,places);
}
}
捕获(FileNotFoundException)
{
返回新列表();
}
}
没有“最好”的方法;这取决于你将如何使用它
一种简单的方法是使用序列化,将其转换为XML、JSON、二进制或任何您想要的内容。我个人喜欢JSON,因为它非常轻量级,对人来说也很容易阅读。您可以使用该库将对象序列化为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);
}
}
静态异步任务保存位置同步(ICollection位置)
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.CreateFileAsync(“places.json”,CreationCollisionOption.ReplaceExisting);
使用(var stream=await file.OpenStreamForWriteAsync())
使用(var writer=新的StreamWriter(流))
{
序列化器。序列化(编写器、位置);
}
}
要从文件中读回,请执行以下操作:
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>();
}
}
静态异步任务LoadPlacesAsync()
{
尝试
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.GetFileAsync(“places.json”);
使用(var stream=await file.OpenStreamForReadAsync())
使用(变量读取器=新的流读取器(流))
使用(var jReader=newjsontextreader(读取器))
{
返回序列化程序。反序列化(jReader,places);
}
}
捕获(FileNotFoundException)
{
返回新列表();
}
}
没有“最好”的方法;这取决于你将如何使用它
一种简单的方法是使用序列化,将其转换为XML、JSON、二进制或任何您想要的内容。我个人喜欢JSON,因为它非常轻量级,对人来说也很容易阅读。您可以使用该库将对象序列化为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);
}
}
静态异步任务保存位置同步(ICollection位置)
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.CreateFileAsync(“places.json”,CreationCollisionOption.ReplaceExisting);
使用(var stream=await file.OpenStreamForWriteAsync())
使用(var writer=新的StreamWriter(流))
{
序列化器。序列化(编写器、位置);
}
}
要从文件中读回,请执行以下操作:
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>();
}
}
静态异步任务LoadPlacesAsync()
{
尝试
{
var serializer=new JsonSerializer();
var folder=ApplicationData.Current.LocalFolder;
var file=await folder.GetFileAsync(“places.json”);
使用(var)流