HashSet< T>の使用C#Properties.Settingsで
-
06-07-2019 - |
質問
現在取り組んでいるゲーム用のC#ツールをいくつか作成しており、「最近のファイル->」を追加しています。ドロップダウンメニュー。
問題は、C#の「設定」を取得できないことです。 VS2008のページで、型指定されたHashSetを追加できます。それを行うオプションはありません。
すべてのハッカーを取得し、" Settings.Designer.cs"を手動で編集しました。ファイル::
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
public global::System.Collections.Generic.HashSet<String> RecentLibs {
get {
return ((global::System.Collections.Generic.HashSet<String>)(this["RecentLibs"]));
}
set {
this["RecentLibs"] = value;
}
}
それはうまく機能しているように見えます。ただし、ある時点で、コードジェネレーターでこれらの変更を無効にすることを知っています。
これを行う正しい方法は何ですか? C#には、単純なHashSetだけでなく、この機能に使用する必要のある組み込み型がありますか?
解決
このようにしないでください。 VSは、Settings.Designer.csのコードを破棄します。
代わりに、VSから設定エディターを開きます(これにより、Settings.settingsおよびSettings.Designer.csファイルのデザインエディターが表示されます)。
次に、F7を押してコードビューを取得します。 VSは、Settings.Designer.csファイルと共有される部分クラスであるSettings.csというファイルを自動的に作成します。このファイルを編集して、思いのままに編集できます。
ただし、Settings.settingsファイル内のXMLエントリは乾杯する場合があります。念のため、それらのコピーを別に保管しておきます。
他のヒント
これを行うための「正しい」方法については定かではありませんが、Visual Studioによる上書きを心配することなく、コードを部分的なSettings.csクラスファイルに安全に移動できます。