Как сохранить / кэшировать данные в кроссплатформенном приложении 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).