2011-12-23 2 views
9

私は、単純なアプリケーションの設定を保存するためのVisual Studioが提供する組み込みの設定を使用します。今まで、私は規則を使って、自分のアプリケーションでこれをアクセスしてきました。その後、使用Properties.Settingsは

Properties.Settings.Default.MySetting 

そして使用してSaveのようなメソッドを呼び出します。

Properties.Settings.Default.Save() 

をしかし、誰かが最近それがより正確であることを私に言いました

private Properties.Settings settings = new Properties.Settings() 

し、[プロパティやメソッドにアクセスするにはメンバーsettingsを使用してこのようなメンバ変数を作成することによって、プロパティにアクセスするには以下のような:

settings.MySetting 
settings.Save() 

私は漠然と、彼らが設定は、ユーザーの領域に格納されている方法の違いを説明することによって、これを正当化することを思い出します。

は誰でも違いの詳細を確認したり、与えることはできますか?どうもありがとう。次のように

答えて

10

Settings.Defaultが初期化されます。

private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 

だから、ほとんど手作業Settings.Defaultによって提供される一つが同期インスタンスであることを除いて、Settingsのインスタンスを作成するのと同じです。私は、これは私に多くの時間を無駄に...

4

を手動Settingsのインスタンスを作成するために何か良い理由を見ることができません。

[MyAppNameSpace].Properties.Settings.Default.Save(); 

あなたは、私はそれをコンパイルするために取得するには、名前空間を指定するために必要なapp.xaml.csコードで上記のようなもので、WPFの名前空間をドロップすることができたときにわかりません。

+1

ありがとうありがとう!これは私に多くの時間を節約しました!面白い私はこれが2.5年後に助けた最初のものです!これは、あまりにも、私を救ったapp.xaml.cs – mdiehl13

+0

で働いていました!私はその後、「フィールド初期化子が非静的フィールドを参照することはできません」だ、App.xaml.csにそれを移動するまで、それは名前空間なしで働いていました。 'Application'クラスの' Properties'メンバのようにあいまいであるように見えます。 – Vimes