Settings (VB.NET)

Application settings (.NET 2.0)

Inleiding

Application settings zijn de nieuwe implementatie in .NET 2.0 (VS2005) van Dynamic Properties.
Zij worden bijgehouden in de secties userSettings en applicationSettings van app.config (voor connection strings: connectionStrings).
ApplicationSettings kunnen niet aangepast worden, userSettings wel (maar moeten wel expliciet opgeslagen worden).
Je hoeft ze niet meer zelf in te geven in app.config, er is een interface in Visual Studio om de ingave gemakkelijker te maken.
VB: My Project – Settings
C#: Properties – Settings.settings (of: dubbelklik op properties en kies links Settings)

Opmerking: App.config wordt bij de deployment hernoemd naar (naam project).exe.config.
Voordelen: eenvoudige ingave, typed, maken gebruik van IntelliSense

Code

Test = My.Settings.(userSetting/applicationSetting)
My.Settings.(userSetting) = Test

Get all settings

Dim item As Configuration.SettingsProperty
For Each item In My.Settings.Properties
MsgBox(item.Name)
MsgBox(item.DefaultValue)
Next

Get setting by name

My.Settings.Item("settingsname")

Add own sections to the config file

Config file

<configSections>
  <!-- Extra custom configuration sections -->
  <section name="FileLocations" type="System.Configuration.DictionarySectionHandler" />
</configSections>

<FileLocations>
  <add key="EUR" value="c:\Floorplan\In_EUR\" />
  <add key="GBP" value="c:\Floorplan\In_GBP\" />
  <add key="PLN" value="c:\Floorplan\In_PLN\" />
</FileLocations>

Code

Dim dicCurrency As IDictionary
dicCurrency = DirectCast(System.Configuration.ConfigurationManager.GetSection("PathSpoolerFiles"), IDictionary)

Dynamic properties (.NET 1.0)

Inleiding

Dynamic properties worden in .NET 1.0 gebruikt om settings bij te houden.
Zij worden bijgehouden in de sectie appSettings van app.config.
App.config wordt bij de deployment hernoemd naar (naam project).exe.config.

Layout app.config

<?xml version="1.0" encoding="utf-8" ?">
<configuration">
<appSettings">
<add key="Keyname" value="C:\Floorplan\Out\"/">
</appSettings">
</configuration">

Code

Imports System.configuration
strValue = System.Configuration.ConfigurationManager.AppSettings("Keyname")
Obsolete (VB2003): ConfigurationSettings.AppSettings("Keyname")

Gebruik eigen secties

De sectie wordt hierbij in een object geladen, bijvoorbeeld een dictionary. Je werkt dan verder met deze dictionary.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="PathSpoolerFiles" type="System.Configuration.DictionarySectionHandler" />
</configSections>
<appSettings>
<add key="OutFilePath" value="C:\Floorplan\Out\"/>
</appSettings>
<PathSpoolerFiles>
<add key="EUR" value="C:\Floorplan\In_EUR\" />
<add key="GBP" value="C:\Floorplan\In_GBP\" />
<add key="PLN" value="C:\Floorplan\In_PLN\" />
</PathSpoolerFiles>
</configuration>

Imports System.configuration
Dim dicCurrency As IDictionary
dicCurrency = DirectCast(System.Configuration.ConfigurationManager.GetSection("Section"), IDictionary)
strTest = dicCurrency("Keyname").ToString

Reference

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License