2016-12-25 4 views
1

私はUWPアプリケーションでキャッシュを実装したいと考えていましたが、System.Runtime.Cachingが見つかりませんでした.MSDNを見ましたhttps://msdn.microsoft.com/en-us/library/mt185505.aspxがこの参照を見つけることができませんでした。これはUWPでサポートされていますか?代わりに何がない場合は?私はstackoverflow上の他の同様の質問を見たが、どんな実行可能な答えも見つけられなかったNo System.Runtime.Caching available?UWPのsystem.runtime.cachingはありません

+0

Microsoct.Extensions.MemoryCacheはUWPで動作しませんか?また、動作するはずのCacheManagerを使用することもできます。辞書ベースキャッシュ内のビルドや、Microsoft Extensionsを使用することは、まったく動作するはずです – MichaC

+0

私のUWPプロジェクトでMicrosoft.Extensions.Caching.Memory.dllを参照できませんでした。私は辞書を使用することができますが、いくつかの重要な値のペアが期限切れになる必要があります。しばらくしてから無効になる共有アクセスのシグネチャです。 – Anu

+0

UWPプロジェクトにnugetパッケージを追加するだけで、空白を作成してCacheManager.Microsoft.Extensions.Caching.Memoryを追加して使用しました。完全にうまく動作します。 – MichaC

答えて

2

System.Runtime.Cachingは現在のUWP SDKリリースでは利用できません。あなたが必要とするキャッシュの種類に応じて、いくつかのオプションがあります

UIのキャッシング:

  • Page.NavigationCacheModeは:スクロール位置、画面上のデータを含むbackstack(上のページのレンダリングを記憶しています... )。
  • UIElement.CacheMode:(主に複雑なレンダリングの場合)UIElementのコンテンツをビットマップとしてレンダリングします。

    • Akavache::SQLiteのに基づいて、非同期のキーと値のストアを、有効期限ルールでのようなサードパーティのライブラリを使用して

    '実際の' データ・キャッシング、。

  • データをJSON/XML形式でディスクに保存します。コメント

更新:

あなたはDisabledに設定することでNavigationCacheModeをクリアすることができます。 GoBack()にパラメータを渡して、前のページにキャッシュをクリアするよう指示することはできません。そのため、イベントメッセージ(Prism EventAggregatorなど)やグローバル変数を追加する必要があります。

NavigationCacheModeの値をプログラムでEnabledまたはRequiredに変更する場合は、ページのコンストラクタでのみこれらの値を設定できます。

あなたはDisabledRequiredまたはEnabledからNavigationCacheModeの値を変更すると、ページがキャッシュからフラッシュされます。

しかし、あなたはWeb呼び出しからJSONデータについて話しているので、私はAkavacheに行くだろう。

+0

Bartの情報ありがとうございます。 – Anu

+0

Webアプリケーションから返されるJsonデータを保存する必要があります。私はPage.NavigationCacheModeを試しました。ページキャッシュを消去する方法がありますか?画面2は、以前の画面に更新する必要があるいくつかのデータを変更する、私は同じ文書/例を見つけることができなかった – Anu

+0

答えを更新しました。しかし、あなたはWebからjsonを取得することについて話しているので、Akavacheを見てください。私の意見では、これははるかに良い解決策です。 – Bart

関連する問題