【问题标题】:Xamarin store informationXamarin 商店信息
【发布时间】:2017-06-20 06:04:14
【问题描述】:

我正在开发一个基于 xamarin 的新项目,我必须以某种方式存储交易数据,即使应用程序关闭,数据也不应该丢失。所以我决定存储一个写有事务信息的文件,以便程序可以在需要时访问该文件并读取或重写信息。首先,我正在考虑创建资产 .txt 文件,但我发现无法将信息写入此类文件。第二种情况是使用嵌入式文件,但我仍然无法找到它应该保存的位置,以免用户无意中删除它。如果可能的话,分享您的经验或发送有关此主题的解释文章。

【问题讨论】:

  • 这是数据库的传统用途。有很多关于在 Xamarin 应用中使用本地 SQLite db 的文章和示例。
  • 在我的情况下,我必须存储一个字符串是否值得实现数据库?
  • 您如何将所有交易数据存储在一个字符串中?除了使用数据库之外,还有一些方法可以持久化短字符串,但我不知道它们是否适用。
  • 目前我将事务的一个对象(4 个属性)存储为 JSON 字符串,并在需要时对其进行序列化/反序列化。
  • 所以您只想存储具有四个属性的单个事务?然后,您可以在 Application.Current.Properties 中尝试四个条目。但是,如果您需要存储多个事务,SQLite 是不二之选。

标签: c# android android-layout xamarin


【解决方案1】:

您可以像这样在应用程序属性中存储少量信息:

string foo = "Foo";
Application.Current.Properties["bar"] = foo;

然后这样检索它们:

string foo = Application.Current.Properties["bar"] as string;

【讨论】:

    【解决方案2】:

    我发现的另一种方式。这应该是跨平台的,我目前只测试了Android版本。

    使用nuget安装

    XAM.Plugins.Settings

    存储一个值(我只得到了字符串和整数)

    var settings = CrossSettings.Current;
    settings.AddOrUpdateValue<string>("key", value);
    

    获取价值

    var settings = CrossSettings.Current;
    var strSettings = settings.GetValueOrDefault<string>("key", string.Empty);
    

    我尝试了更复杂的类型并得到了错误

    System.ArgumentException:不支持 PreSetStruct 类型的值。发生了

    PreSetStruct 是一个包含几个字段的简单结构。

    我稍后会开发 iOs 版本,并会告诉你它是如何工作的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 2017-03-20
      • 1970-01-01
      • 2013-04-01
      • 2023-04-02
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多