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

Xamarin.forms 导出/导入Xamarin.Essentials首选项,xamarin.forms,xamarin.essentials,Xamarin.forms,Xamarin.essentials,我正在寻找一种快速/简单的方法来导入和导出Xamarin.Essentials公开的Preferences对象。有什么建议吗?根据您的描述,您希望在首选项中保存数据并从首选项中获取数据,对吗?如果是,请查看以下代码: using Xamarin.Essentials; private void Btn1_Clicked(object sender, EventArgs e) { Preferences.Set("key1", "this is test");

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

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

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的详细信息。要点:首选项,请查看以下文章:

更新:

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

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

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; }
}
公共部分类第13页:内容页
{
公共列表人员{get;set;}
公共页13()
{
初始化组件();
人员=新名单()
{
新人(){username=“cherry”,年龄=12},
新人(){username=“barry”,年龄=14}
};
}
私有无效Btn1_已单击(对象发送方,事件参数e)
{
string list=Newtonsoft.Json.JsonConvert.SerializeObject(persons);
参数设置(“键1”,列表);
}
已单击私有无效Btn2(对象发送者,事件参数e)
{
var myValue=Newtonsoft.Json.JsonConvert.DeserializeObject(Preferences.Get(“key1”)和“”);
}    
}
公共阶层人士
{
公共字符串用户名{get;set;}
公共整数{get;set;}
}

我使用列表来做示例,但您可以将evertthing对象序列化为字符串,然后优先保存此字符串,将字符串反序列化为对象以获取数据。

因此,我无法找到一种内置方法来完成此操作。我必须在我的应用程序中手动编写代码来检查我所有的首选项,序列化它们,然后将字符串写入磁盘。同样,对于导入,我必须获取一个序列化字符串,重新序列化它,然后手动将值放回我的首选项中

它看起来不容易序列化。您可以自己检查来源:这是不正确的。我想将保存的所有内容导出到首选项中,以便保存到驱动器中,然后在将来重新导入到首选项中。如果用户希望使用完全相同的配置来支持我的应用程序的另一个实例,则会使用此选项。@George,您说过要在“首选项”中保存所有内容,如果是这样,我建议您可以序列化要保存的数据,并使用Newtonsoft.Json反序列化要获取的数据,请看一下我的更新。如果我的回复对您有帮助,请记住将我的回复标记为答案,谢谢。是的,这是最后的选择。我一直在寻找更具动态性的东西,这样当我向首选项添加新值时,它会自动包含在导入/导出中。我将继续研究我今天的一个想法,如果可行的话,我会把它发回到这里。@GeorgeMCeaserJr,如果你对此有一个解决方案,请在这里分享,谢谢。@CherryBu-我希望Xamarin Essentials首选项会公开一个密钥集。这样,就很容易循环遍历首选项中的所有条目,将它们序列化为json,并使该字符串可用于保存。不幸的是,preferences类没有公开密钥集合。我不得不在代码中手动实现它。我相信公开一组键将是对preferences类的一个很好的补充,并使导入导出函数的实现变得很简单。:)