アプリケーションに保存する必要があるGUI属性が少数あります。 属性はシンプル(ウィンドウのサイズ、ウィンドウの色、内線など)であり、ファイルに格納する必要があります(XMLまたはバイナリにすることができます)。Cシャープで永続化を行う最良の方法は?
コードを作成するためのベストや方法はわかりませんか? シンプルなXMLまたはシリアル化ですか?
いくつかの例がありますか?
ありがとうございました。
アプリケーションに保存する必要があるGUI属性が少数あります。 属性はシンプル(ウィンドウのサイズ、ウィンドウの色、内線など)であり、ファイルに格納する必要があります(XMLまたはバイナリにすることができます)。Cシャープで永続化を行う最良の方法は?
コードを作成するためのベストや方法はわかりませんか? シンプルなXMLまたはシリアル化ですか?
いくつかの例がありますか?
ありがとうございました。
ストアweb.configファイル内の値。次に例を示します。
<appSettings>
<add key="size" value="100" />
編集:それはそのAのWindowsアプリのように見えるので、App.configファイルを使用することができます。
どういうわけか私は、OPがウィンドウのサイズと色を保存している場合、彼はWebアプリケーションについて話していないと考えています。 –
その後、App.configファイルに保存できます。 – fARcRY
Settings
のようにクラスにプロパティとして格納されている場合は、これをディスク(バイナリまたはxml)にシリアル化できます。
このファイルをデシリアライズして、アプリケーションの起動時にSettings
オブジェクトを戻します。ファイルが存在しない場合は、新しいSettings
オブジェクトを作成し、デフォルト値をシリアル化します。
XMLは「人間が読める」ものであり、通常のツールで操作/表示できるため、XMLをお勧めします。
本当に簡単な方法は、DataContractSerializerを使用することです。このリンクには、シリアル化するエンティティを定義する方法と、簡単にシリアル化できる方法が示されています。 ISerialiazableとXmlSerializerなどもありますが、DCSが簡単なのはなぜでしょうか? :-)
私は、アプリケーションの実行時の設定を保存するためにIsolatedStorageを使用することをお勧めします:
IsolatedStorageSettings appSettings= IsolatedStorageSettings.ApplicationSettings;
appSettings.Add(<Control.PropertyName>, <Value>);
一般的ではないINIファイルを使用して、重要でない値を格納することができます。 Nini(http://nini.sourceforge.net/)を使ってINIファイルを読み書きすることができます。 .NET Frameworkは、INIファイルを処理するためのライブラリを提供していません。
これは、アプリケーションの設定を保存する私の好ましい方法であるが、それは
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);
}
で投票するための最良の方法と答えを受け入れる。 –