Как сохранить / кэшировать данные в кроссплатформенном приложении Mono (например, Xamarin Framework)?

Я ищу хорошее решение для хранения и / или кэширования данных в кроссплатформенном приложении, разработанном на C# (MonoTouch и MonoDroid + WindowsPhone от Xamarin). Простых пар ключ / значение было бы достаточно. Сохраненные данные будут использоваться как общее кэширование и как постоянство, чтобы показывать что-то при запуске приложения, пока новые данные выбираются с сервера.

Akavache очень похож на то, что я хочу, но как интегрировать это в мои проекты? Будет ли он выбрать правильный путь для хранения? Есть ли похожие библиотеки вокруг?

3 ответа

Решение

Я не пробовал Akavache jet, а реализовал кроссплатформенную оболочку вокруг API предпочтений на Android и iOS:

var storage = SimpleStorage.EditGroup("group name of key/value store");
storage.Put("myKey", "some value");
var value = storage.Get("myKey");

Проект размещен на GitHub и распространяется в виде бесплатного пакета NuGet. Наряду с хранением строк он также предоставляет асинхронные / ожидающие методы и сериализацию / десериализацию сложных объектов.

Я бы порекомендовал просто использовать XmlSerializer или что-то, что вы привыкли использовать в.Net. Вы можете просто изменить путь, по которому хранится файл, в зависимости от платформы.

Akavache выглядит многообещающе, но выглядит немного излишним, если вам нужна только пара пар ключ-значение.

Akavache автоматически установит правильные пути на iOS и Android, будет использовать информацию из вашего приложения (из AndroidManifest.xml на Android и вашего info.plist на iOS).

Другие вопросы по тегам