首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出/导入Xamarin.Essentials首选项

导出/导入Xamarin.Essentials首选项
EN

Stack Overflow用户
提问于 2020-01-17 19:53:08
回答 2查看 358关注 0票数 1

我正在寻找一种快速/简单的方法来导入和导出由Xamarin.Essentials公开的Preferences对象。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-24 15:25:21

所以我找不到一个内置的方法来做这件事。我必须在我的应用程序中手动编写代码,以遍历我的所有首选项,序列化它们,然后它们将字符串写入磁盘。同样,对于导入,我必须接受一个序列化字符串,重新序列化它,然后手动将值放回我的首选项中。

票数 0
EN

Stack Overflow用户

发布于 2020-01-18 03:47:59

根据您的描述,您希望优先保存数据,并从首选项中获取数据,对吗?如果是,请查看以下代码:

代码语言:javascript
复制
using Xamarin.Essentials;
  private void Btn1_Clicked(object sender, EventArgs e)
    {
        Preferences.Set("key1", "this is test");
    }

    private void Btn2_Clicked(object sender, EventArgs e)
    {
        var myValue = Preferences.Get("key1","");
    }

有关Xamarin.Essentials: Preferences的更详细信息,请查看以下文章:

https://learn.microsoft.com/en-us/xamarin/essentials/preferences?tabs=android

https://www.c-sharpcorner.com/article/xamarin-forms-application-preferences-using-xamarin-essentials/

更新:

如果您想保存首选项中的所有内容,我建议您可以序列化要保存的数据,并使用Newtonsoft.Json反序列化要获取的数据。

首先,通过Nuget软件包安装Newtonsoft.Json,然后执行以下操作:

代码语言:javascript
复制
public partial class Page13 : ContentPage
{
   public List<person> persons { get; set; }
    public Page13()
    {
        InitializeComponent();
        persons = new List<person>()
        {
            new person(){username="cherry",age=12},
            new person(){username="barry",age=14}
        };

    }

    private void Btn1_Clicked(object sender, EventArgs e)
    {
        string list = Newtonsoft.Json.JsonConvert.SerializeObject(persons);
        Preferences.Set("key1", list);
    }

    private void Btn2_Clicked(object sender, EventArgs e)
    {
        var myValue = Newtonsoft.Json.JsonConvert.DeserializeObject<List<person>>(Preferences.Get("key1", "")) ;
    }    
}


public class person
{
    public string username { get; set; }
    public int age { get; set; }
}

我使用List来做示例,但是您可以将每个对象序列化为string,然后优先保存这个字符串,反序列化字符串到object以获取数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59794045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档