C# 编写/读取类的最简单方法

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;

我是C#和Windows Phone开发的新手,我需要为学校项目制作应用程序。
我有一个简单的类,我想保存它以便以后在应用程序的下一次启动时访问。
最好(也是最简单)的方法是什么?使用文件、数据库或其他应用程序内存

这是我的班级:

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)流