Silverlight2.0でManaged JScriptからの設定ファイルへの読み書込み

Silverlight2.0でManaged JScriptから
設定ファイルへの読み書込みを行う際には
IsolatedStorageSettingsクラスを使って行います。

なお、Windows サイドバーガジェットを作ろうとしたときには
ちょっと注意点があります。
Silverlightでのパラメータでの”source”のxapファイルごとに
設定ファイルが作られます。
なので同じxapファイル名のものがあるときには
せっかく設定した値が他のガジェットでいじられてしまう可能性があります。
やっぱり”x-gadget:///”のせいでしょう。

また、Windows サイドバーガジェットだと大丈夫なのですが
それ以外では設定ファイルへの書込みの
時間が何故かかかってしまいます。
なのでここではタイマー処理をして濁しています。

まずは設定ファイルの読込みです。
“foo”のキーでの値を読込んで”bar”に設定しています。
 Import(“System.IO.IsolatedStorage.IsolatedStorageSettings”)
 var bar = null;

 var appSetting = IsolatedStorageSettings.ApplicationSettings;
 if(appSetting.Contains(“foo”)){
  bar = appSetting[“foo”];
 }

次に設定ファイルへの書込みです。
barの値を”foo”をキーとして設定ファイルへ書込みを行っています。
 Import(“System.IO.IsolatedStorage.IsolatedStorageSettings”)
 Import(“System.TimeSpan”)
 Import(“System.Windows.Threading.DispatcherTimer”)
 var timer = null;
 var bar   = null;

 var appSetting = IsolatedStorageSettings.ApplicationSettings;
 if(appSetting.Contains(“foo”)){
  appSetting[“foo”] = new String(bar).toString();

 } else {
  appSetting.Add(“foo”, new String(bar).toString());
 }

 // 時間がかかるのでタイマー処理を行う
 if(timer == null){
  timer = new DispatcherTimer();
  timer.Interval = TimeSpan.FromMilliseconds(1);
  timer.Tick     += function(){
   var appSetting = IsolatedStorageSettings.ApplicationSettings;
   appSetting.Save();

   timer.Stop();
  }
 }
 timer.Start();

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください