2

我正在尝试使用 Xamarin 的 Mono 东西(MonoTouch 和 MonoDroid)构建应用程序。我正在尝试编写一些代码,允许我将内容放置在本地存储中。来自 Windows Phone 背景,我认为这也是 Xamarin 世界中推荐的方法。在 Windows Phone 上,我会执行以下操作:

IsolatedStorageSettings clientStorage = IsolatedStorageSettings.ApplicationSettings;
if (clientStorage != null)
{
  if (clientStorage.Contains("myKey"))
    clientStorage["myKey"] = value;
  else
    clientStorage.Add("myKey", value);
  clientStorage.Save();
}

虽然 Xamarin 堆栈提供System.IO.IsolatedStorage,但它不提供IsolatedStorageSettings类。现在,我觉得卡住了,我找不到一个例子。我的问题是,如何在 Mono 应用程序的独立存储中设置值?

谢谢

4

2 回答 2

4

移动解决方案中未实现独立存储设置。根据该帖子,它看起来可以添加,但它必须是自定义实现。

不过,一般来说,您还有其他一些选择。

  • 使用本机支持的机制。Android:SharedPreferences (示例)。iOS:NSUserSettings (示例)
  • 使用 JSON 或 XML 将设置存储在序列化对象中,然后在需要访问该对象时反序列化该对象。可能会有一个很好的快速和肮脏的选择,但不推荐。
  • 使用 SQLite 数据库来存储您的设置。这将是一个更跨平台的选项,并且可能是最推荐的选项。
于 2013-05-08T11:54:00.727 回答
0

官方的 mono 项目提供了 IsolatedStorageSettings 的实现。

您可以在以下位置找到它:https ://github.com/mono/moon/blob/master/class/System.Windows/System.IO.IsolatedStorage/IsolatedStorageSettings.cs 。

只需将文件添加到您的项目并将“System.Runtime.Serialization”添加到您的引用中。

该类在应用目录中创建一个文件“__LocalSettings”,并使用DataContractSerializer序列化您的设置。

于 2013-08-08T17:14:26.650 回答