iniファイル、レジストリに替わる設定ファイル(XML)
VB2005からアプリケーション固有の設定やユーザーごとの設定を保存するために設定ファイルというものが用意されました。従来(VB6)の頃までは、iniファイルやレジストリを使用して設定を記録したりしていましたが、VB2005からはSettingsクラス使って設定を保存します。
設定ファイルには、2つのスコープが用意されています。
- アプリケーション
- ユーザー
アプリケーションは、読み取り専用となりアプリケーションの全ユーザーで共有されます。
これらの設定は、app.config ファイルの <applicationSettings>セクションに格納されます。
ユーザーは、ユーザー別の設定で読み書きが可能です。(アプリケーションレベルでも書き換えたい気がしますが)
アプリケーション構成ファイルは、**「Exe名.config」**という名前でExeと同じ場所に作成されます。
VB2005で設定ファイルを作成する。
実際に設定ファイルを作成するには、メニューから[プロジェクト]-[プロパティ]を選択します。
プロパティの設定画面より左のタブ?から【設定】を選択します。
上記画面にアプリケーションに必要な設定を記述していきます。
コード中でこの設定ファイルの設定を必要とする場合、次のようにします。
strDB = My.settings.db
My.settings.user = bnote
VB2005での設定の裏側
VB2005では、上記設定を管理するために「MySettings」という以下のようなクラスが作成されます。
' かなり省略しています
Namespace My
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
End Class
End Namespace
Namespace My
Friend Module MySettingsProperty
Friend ReadOnly Property Settings() As Global.[set].My.MySettings
Get
Return Global.[set].My.MySettings.Default
End Get
End Property
End Module
End Namespace
上記画面にて設定をすると、このクラス内に「Public Property」が作成され設定ファイルに指定した 値を取得することができます。
スコープをアプリケーションにした場合、クラス内に作成されるプロパティは読み取り専用となり 次のように作成されます。
Public ReadOnly Property db() As String
Get
Return CType(Me("db"),String)
End Get
End Property
スコープがユーザーの場合、次のように作成されます。
Public Property User() As String
Get
Return CType(Me("User"),String)
End Get
Set
Me("User") = value
End Set
End Property