1

シルバーライトアプリケーションでキャッシング(キャッシングアプリケーションブロック)を使用するために&の練習パターン&をダウンロードしましたが、試して試してみたところ、動作しませんでした。 有用な例が見つかりませんでした - 誰かが例を持っていますか?単純な使い方を示しているコードのほんの数行ですか? ユニティを使用する必要がありますか?Silverlightでエンタープライズライブラリキャッシングアプリケーションブロックを使用する

感謝!

私は私はエンタープライズライブラリの設定から得たデフォルトの設定を使用 - 私はXAMLとしてエクスポートツール:

<el:CachingSettings DefaultCache="In-Memory Cache" x:Key="cachingSilverlightConfiguration"> 
    <el:CachingSettings.Caches> 
    <el:InMemoryCacheData ExpirationPollingInterval="00:02:00" Name="In-Memory Cache" /> 
    </el:CachingSettings.Caches> 
</el:CachingSettings> 

そして、私は次のコードでそれをアクセスしようとすると:

ObjectCache cache = EnterpriseLibraryContainer.Current.GetInstance<ObjectCache>("In-Memory Cache"); 
ここで
{System.IO.FileNotFoundException: The system cannot find the file specified. File name: 'System.Xml.Linq, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ... 
+0

あなたが試したコードと設定に役立つでしょうか? –

+0

自分の投稿にいくつかのコードを追加しました。しかし、私はuesious例を見つけることができなかったので、コードがまったく正しいかどうか分からない。 – Gerwald

答えて

1

おかげで、私はthe answer I needed, thereを得た:

あなたがコンテナを設定していないように見えます。サーバーを呼び出して構成を取得したくない場合は、構成を組み込み、ロードする必要があります。

string stringWithXAMLConfiguration = @"<?xml version=""1.0"" encoding=""utf-8""?> 
<el:ConfigurationDictionary xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" 
       xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"" 
       xmlns:el=""http://schemas.microsoft.com/practices/2011/entlib""> 
<el:CachingSettings DefaultCache=""In-Memory Cache"" x:Key=""cachingSilverlightConfiguration""> 
    <el:CachingSettings.Caches> 
     <el:InMemoryCacheData ExpirationPollingInterval=""00:02:00"" Name=""In-Memory Cache"" /> 
     <el:IsolatedStorageCacheData MaxSizeInKilobytes=""5120"" PercentOfQuotaUsedBeforeScavenging=""50"" PercentOfQuotaUsedAfterScavenging=""20"" ExpirationPollingInterval=""00:01:00"" Name=""Isolated Storage Cache"" /> 
    </el:CachingSettings.Caches> 
</el:CachingSettings> 
</el:ConfigurationDictionary>"; 

var configDictionary = (IDictionary)XamlReader.Load(stringWithXAMLConfiguration); 
var configSource = DictionaryConfigurationSource.FromDictionary(configDictionary); 
EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource); 

それとも、コード内の文字列を持っていますが、XAMLファイルの(例えばcacheConfig.xaml)を確保その後、XAMLファイルに好むアクションを構築したくない場合は、リソース埋め込まれた後、次を使用することができますコード:

string xaml; 
using (Stream s = this.GetType().Assembly.GetManifestResourceStream("SilverlightApplicationCache.cacheConfig.xaml")) 
    using (StreamReader sr = new StreamReader(s)) 
     xaml = sr.ReadToEnd(); 

var configDictionary = (IDictionary)XamlReader.Load(xaml); 
var configSource = DictionaryConfigurationSource.FromDictionary(configDictionary); 
EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configSource); 

SilverlightApplicationCacheは、上記のXAMLファイル(プロジェクトの例:デフォルトの名前空間)の名前空間です。

0

はサンプルです:

はその後、私は例外を取得http://entlib.codeplex.com/releases/view/64923

はまたChannel9にこのビデオを参照してください。EntlibサポートからRandy Levyhttp://channel9.msdn.com/posts/Enterprise-Library-for-Silverlight-Data-Caching-demo

+0

リンクをありがとうが、私はすでにそれらの両方を知っていた。 StockTrader RIは、エンタープライズライブラリ全体の使用状況を示す巨大なアプリケーションです。そして、channel9のビデオは、さまざまなszenariosを表示し、大きな画像を伝えることに焦点を当てています。残念ながら、EntLibの初心者にとってはどちらも無用です。 – Gerwald

+0

RIの外では、必要なコードスニペットを手近にしてObjectCacheを使用するためのステップバイステップの手順を見つけることができます。それらは、ドキュメントセットの「アプリケーションでのキャッシングの実装」セクション(http://entlib.codeplex.com/releases/view/64239#DownloadId=241925)にあります。 –

+0

ありがとう - これは本当に良いリソースです。私の長い探求の後、私はそれがバストの一つだと思う。唯一の問題は、記述されているように動作しないことです。要約: 1.)ウィザードを使用して構成を作成します。 2.)SLソリューションに追加し、ビルドアクションを「コンテンツ」に設定してください 3.)キャッシュをコンテナから回収します。 - >これは機能しませんでした。 – Gerwald

関連する問題