2016-12-26 4 views
-1

Xamarin.Formsアプリケーションでいくつかのラベルの状態を保存しようとしています。私はCreating Mobile Apps with Xamarin.Forms書籍の手順に従ってています、それは値ごとに値を格納する方法を示していますが、いくつかの情報があるときのためにこれをお勧めします。より多くのアイテムを使用してアプリケーションをXamarin.formsのプロパティAppディクショナリで使用するC#のJSON文字列にクラスをシリアル化する方法

をのAppSettingsという名前のクラスでそれらを統合することができます(そのクラスをXMLまたはJSON文字列にシリアル化して、その文字列を辞書に保存します。

私はそれを行う方法については失われています、私はこのよう

 //! Recover appSettings if some 

     IDictionary<string, object> properties = Application.Current.Properties; 
     if (properties.ContainsKey("mainTitle")) 
     { 
      mainTitle.Text = properties["mainTitle"] as string; 
     } 

     //! New code for loading previous keypad text. 
     App app = Application.Current as App; 
     mainTitle.Text = app.MainTitle; 

そして、私が使用したイベントのプロパティを回復私のコンストラクタでは、単純なクラス

class AppSettings 
{ 
    public double? gain = null; 
    public string mainTitle = "my title"; 
} 

を作成それを保存するには:

void onHomeOptionButtonClicked(object sender, EventArgs args) 
     { 

      Button buttonClicked = (Button)sender; 

      mainTitle.Text = buttonClicked.Text; 
      // !Save keypad text. 
      App app = Application.Current as App; 
      app.MainTitle = mainTitle.Text; 
     } 

私が知りませんそれはJSONにシリアライズすることができますので、私のクラスを構成する

私はこのJavaScriptのアイデアをC#でクラスを作成したい(私も、この連載を行う方法がわからない):

myAppSettings = { 
    HomePage : { 
     name1 : "value1", 
     name2 : "value2" 
     name3 : { 
      name3.name1 : "value3.1" 
     } 
    }, 
    OtherPage:{ 
     name1 : "value1", 
     name2 : "value2" 
    }, 
    . 
    . 
    . 
}; 

どのC#でそれを行う正しい方法ですか?

+0

JavaScriptの 'object'または' prototype'を意味しますか? - javascriptの 'object'のC#に相当するのは確かにC#' object'( 'class'のインスタンス)なので、javascriptの' prototype'に相当する(いくつかの重要な違いは)C# 'class'の –

+0

申し訳ありませんが、私はmodsの推奨に従って穴の質問をしました.. – distante

+0

@distante今あなたの質問は良いです。必要なのは、すべての設定値をクラスに入れて、それを 'JsonConvert.SerializeObject(yourSetting)'として直列化することだけです。 http://www.newtonsoft.com/jsonを参照してください。 –

答えて

1

C#クラスのインスタンスをjson文字列にシリアル化することができれば、json.Netのjsonシリアライザ/デシリアライザはすべてのC#オブジェクトに対してそれを実行すると思います。

+0

私はかなり理解していません、Json.netオープンソースですか?それとも費用がかかりますか?私はまだC#/ Xamarinで働いていませんが、私はそれを学んでいますが、高価な拡張(599ドル)に依存しないことを望んでいます。**編集**私はMITライセンスを持っていて、$ 599はサポートのためです。 – distante

+0

Json.NETはMITライセンスのもとオープンソースであり、商用で無料です。 –

関連する問題