こんにちは。
現在、タイトル通り、VisualStudioのSettings.settingsを動的に
読み込む方法で悩んでいます。
現在Windowsアプリケーション開発を行っており、設定データを保存するのに
Properties.Settings.Settingsで管理しております。
この時、保存した場合はAppDataにデータがxml形式で保存されています。
このxmlを動的に読み込みたいのですが、(ユーザーがxmlファイルをダイアログで選択する)
どのように読み込んでいいかわかりません。
一つ一つ構文解析して読み込むことは非常に大変です。
Settings.Designer.csを見ると、internal sealed partial class Settings
があるので、このクラスで読み込めたらいいなぁと思っているのですが、
どうやっていいかお手上げ状態です。
どなたかよい対処方法を教えていただけませんか?
よろしくお願いいたします。
Visual Studio Settings.Settings(xml)ファイルの動的読み込みについて
Re: Visual Studio Settings.Settings(xml)ファイルの動的読み込みについて
マルチポスト先の144番のポストで書かれているように,XmlDocumentなりXDocumentなりでXMLとして読めば読めます。
150番の方が書かれている,XmlSerializerによる方法は,System.Configurations.Configurationにデフォルトコンストラクタがないため,試した限り使えなかったです。
で,やはり144番の方が書かれていますが,
設定用のクラスを自前で作り,それをXmlSerializerなりDataContractSerializerなり他の各種シリアライザを使って保存,復元するのが正攻法だと思います。
Settingsは,何個も用意してユーザーが取り替えられるような使い方を前提としていませんので。
refs) シリアライズ関連について
150番の方が書かれている,XmlSerializerによる方法は,System.Configurations.Configurationにデフォルトコンストラクタがないため,試した限り使えなかったです。
で,やはり144番の方が書かれていますが,
設定用のクラスを自前で作り,それをXmlSerializerなりDataContractSerializerなり他の各種シリアライザを使って保存,復元するのが正攻法だと思います。
Settingsは,何個も用意してユーザーが取り替えられるような使い方を前提としていませんので。
refs) シリアライズ関連について
Re: Visual Studio Settings.Settings(xml)ファイルの動的読み込みについて
ご回答ありがとうございます。
やはりxmlでシリアライズ、デシリアライズが一番有効なんですね。
本来やりたかったことは、ソフトバージョン更新時、以前使っていたバージョンの
Settings.Settingsの内容を最新バージョンでも引き継ぎたいがためにこのような
質問をいたしました。Settings.Settingsの項目が非常に多いので、再インストール時
にまた全部設定するのは手間と感じています。
本来はこのような場合、Settings.Settingsを使うのではなく、自前の設定クラスで
管理することが最もよい手法なのでしょうか。
やはりxmlでシリアライズ、デシリアライズが一番有効なんですね。
本来やりたかったことは、ソフトバージョン更新時、以前使っていたバージョンの
Settings.Settingsの内容を最新バージョンでも引き継ぎたいがためにこのような
質問をいたしました。Settings.Settingsの項目が非常に多いので、再インストール時
にまた全部設定するのは手間と感じています。
本来はこのような場合、Settings.Settingsを使うのではなく、自前の設定クラスで
管理することが最もよい手法なのでしょうか。
Re: Visual Studio Settings.Settings(xml)ファイルの動的読み込みについて
バージョンアップに伴うものであるならば,Upgrade メソッドを呼び出せば「直前のバージョン」のデータを引き継ぐことができます。lulu さんが書きました:本来やりたかったことは、ソフトバージョン更新時、以前使っていたバージョンの
Settings.Settingsの内容を最新バージョンでも引き継ぎたいがためにこのような
質問をいたしました。Settings.Settingsの項目が非常に多いので、再インストール時
にまた全部設定するのは手間と感じています。
refs)
- ApplicationSettingsBase.Upgrade メソッド (System.Configuration) (MSDN)
- 前バージョンの設定を取得する - Visual Studioでアプリケーションの設定を保存する: .NET Tips: C#, VB.NET - DOBON.NET: VB.NET, C#, 無料ソフトウェア...
場合によりけりです。lulu さんが書きました:本来はこのような場合、Settings.Settingsを使うのではなく、自前の設定クラスで
管理することが最もよい手法なのでしょうか。
単純にバージョンアップで引き継ぐ,という話であればUpgradeメソッドで十分であることも多いと思います。ただ,
とあったため,私は (恐らく2chで回答された方も) VSの「設定のインポートとエクスポート」のような,複数の設定からユーザーが選択する方式を想定していました。lulu さんが書きました:このxmlを動的に読み込みたいのですが、(ユーザーがxmlファイルをダイアログで選択する)
どのように読み込んでいいかわかりません。
それを前提にするのであれば,複数の設定ファイルの存在を前提としないSettingsを使うよりは,自前の設定クラスをシリアライズ・デシリアライズした方が手間が少なくなる,ということです。
Re: Visual Studio Settings.Settings(xml)ファイルの動的読み込みについて
YuO様
ご回答ありがとうございました。
結局、独自の設定クラスを設けて、処理するようにしました。
ご回答ありがとうございました。
ご回答ありがとうございました。
結局、独自の設定クラスを設けて、処理するようにしました。
ご回答ありがとうございました。