2011-01-12 11 views
0

アプリケーションに保存する必要があるGUI属性が少数あります。 属性はシンプル(ウィンドウのサイズ、ウィンドウの色、内線など)であり、ファイルに格納する必要があります(XMLまたはバイナリにすることができます)。Cシャープで永続化を行う最良の方法は?

コードを作成するためのベストや方法はわかりませんか? シンプルなXMLまたはシリアル化ですか?

いくつかの例がありますか?

ありがとうございました。

+2

で投票するための最良の方法と答えを受け入れる。 –

答えて

2

ストアweb.configファイル内の値。次に例を示します。

<appSettings> 
    <add key="size" value="100" /> 

編集:それはそのAのWindowsアプリのように見えるので、App.configファイルを使用することができます。

+0

どういうわけか私は、OPがウィンドウのサイズと色を保存している場合、彼はWebアプリケーションについて話していないと考えています。 –

+0

その後、App.configファイルに保存できます。 – fARcRY

1

Settingsのようにクラスにプロパティとして格納されている場合は、これをディスク(バイナリまたはxml)にシリアル化できます。

このファイルをデシリアライズして、アプリケーションの起動時にSettingsオブジェクトを戻します。ファイルが存在しない場合は、新しいSettingsオブジェクトを作成し、デフォルト値をシリアル化します。

1

XMLは「人間が読める」ものであり、通常のツールで操作/表示できるため、XMLをお勧めします。

本当に簡単な方法は、DataContractSerializerを使用することです。このリンクには、シリアル化するエンティティを定義する方法と、簡単にシリアル化できる方法が示されています。 ISerialiazableXmlSerializerなどもありますが、DCSが簡単なのはなぜでしょうか? :-)

2

私は、アプリケーションの実行時の設定を保存するためにIsolatedStorageを使用することをお勧めします:

IsolatedStorageSettings appSettings= IsolatedStorageSettings.ApplicationSettings; 
appSettings.Add(<Control.PropertyName>, <Value>); 
0

一般的ではないINIファイルを使用して、重要でない値を格納することができます。 Nini(http://nini.sourceforge.net/)を使ってINIファイルを読み書きすることができます。 .NET Frameworkは、INIファイルを処理するためのライブラリを提供していません。

2

これは、アプリケーションの設定を保存する私の好ましい方法であるが、それは

public class Settings 
{ 
    public int WindowWidth { get; set; } 

    public int WindowHeight { get; set; } 

    public int FullscreenAsDefault { get; set; } 
} 

を役に立てば幸いその後、どちらのメインクラスでアプリケーションのタイプに適用されます:

public Settings Settings { get; set; } 

    public void OnOpen() 
    { 
     if (!File.Exists("Settings.xml")) 
     { 
      // init settings 
      this.Settings = new Settings() 
      { 
       FullscreenAsDefault = false, 
       WindowHeight = 500, 
       WindowWidth = 700 
      }; 
     } 
     else 
     { 
      // load settings 
      XmlSerializer xmlSerializer = new XmlSerializer(typeof(Settings)); 
      Settings = xmlSerializer.Deserialize(new FileStream("Settings.xml", FileMode.Open)) as Settings; 
     } 
    } 

    public void OnClose() 
    { 
     // save settings 
     XmlSerializer xmlSerializer = new XmlSerializer(typeof(Settings)); 
     xmlSerializer.Serialize(new FileStream("Settings.xml", FileMode.Create), this.Settings); 
    } 
関連する問題