2

アプリ内からアプリの内部設定をファイルにインポート/エクスポートする最良の方法は何ですか?

Settings.settings ファイル、winform UI が設定ファイルに関連付けられており、Visual Studio の設定のインポート/エクスポート機能と同様に、設定をインポート/エクスポートしたいと考えています。

4

4 に答える 4

2

Settings.settingsファイルを使用している場合は、構成ファイルに保存されます。設定を更新した後にYourNamespace.Properties.Settings.Save()を呼び出すと、設定ファイルに保存されます。

ただし、「複数の設定」とはどういう意味かわかりません。設定がユーザー設定の場合、各ユーザーには独自の設定セットがあります。1人のユーザーに対して複数の設定セットがある場合は、おそらく.settingsファイルを使用しないでください。代わりに、データベースを使用することをお勧めします。

于 2008-09-17T22:07:18.543 に答える
0

私が使用した実証済みの方法は、設定コンテナー クラスを設計することです。このコンテナ クラスは、さまざまな種類の設定カテゴリのサブクラスを持つことができます。プロパティ名を介して「設定」を参照するため、うまく機能するため、将来何かが変更された場合、コンパイル時エラーが発生します。また、個々の設定クラスにプロパティを追加することでいつでも新しい設定を作成し、アプリケーションの古いバージョンに特定の設定が存在しない場合に使用されるプロパティのプライベート変数にデフォルト値を割り当てることができるため、拡張可能です。新しいコンテナが保存されると、新しい設定も保持されます。もう 1 つの利点は、設定に適した XML の明らかな人間/コンピューター可読性です。

保存するには、コンテナー オブジェクトを XML データにシリアル化し、データをファイルに書き込みます。ロードするには、ファイルからデータを読み取り、逆シリアル化して設定コンテナー クラスに戻します。

標準の C# コードでシリアル化するには:

public static string SerializeToXMLString(object ObjectToSerialize)
MemoryStream mem = new MemoryStream();          
System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(ObjectToSerialize.GetType());
ser.Serialize(mem,ObjectToSerialize);                       
ASCIIEncoding ascii = new ASCIIEncoding();
return ascii.GetString(mem.ToArray());

標準の C# コードを介して逆シリアル化するには:

public static object DeSerializeFromXMLString(System.Type TypeToDeserialize, string xmlString)
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(xmlString);
MemoryStream mem = new MemoryStream(bytes);         
System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(TypeToDeserialize);
return ser.Deserialize(mem);

シリアル化可能な設定クラスの最後の良い点は、オブジェクトであるため、IntelliSense を使用して特定の設定にすばやく移動できることです。

注: 設定コンテナー クラスをインスタンス化した後、それを別の静的管理クラスの静的プロパティにする必要があります (必要に応じて、SettingsManager と呼ぶことができます)。この管理クラスを使用すると、アプリケーションのどこからでも設定にアクセスできます ( ) また、クラスのロードと保存を処理する静的関数を使用することもできます。

于 2008-09-17T22:12:41.527 に答える
0

フォームにバインドする DataSet を使用できます。そして、それを保存/復元できます。

于 2008-09-17T21:52:07.330 に答える
0

セクションをそのまま使用できますか、それとも特定の理由で他のファイルに分割していますか?

于 2008-09-17T21:52:12.153 に答える