I am trying to access settings in my config file, which is a series of xml elements listed as such:
<databases> <database name='DatabaseOne' Value='[value]' /> <database name='DatabaseTwo' Value='[value]' /> </databases>
Now I want to access it. I have set up classes like so:
Public Class DatabaseConfigurationHandler Inherits ConfigurationSection <ConfigurationProperty('Databases', IsDefaultCollection:=True)> _ Public ReadOnly Property Databases() As DatabaseCollection Get Return CType(Me('Databases'), DatabaseCollection) End Get End Property End Class Public Class DatabaseCollection Inherits ConfigurationElementCollection Protected Overloads Overrides Function CreateNewElement() As ConfigurationElement Return (New Database()) End Function Protected Overloads Overrides Function GetElementKey(ByVal element As ConfigurationElement) As Object Return (CType(element, Database).DatabaseName) End Function End Class Public Class Database Inherits ConfigurationElement <ConfigurationProperty('name', IsKey:=True, IsRequired:=True)> _ Public Property DatabaseName() As String Get Return Me('name').ToString() End Get Set(ByVal Value As String) Me('name') = Value End Set End Property <ConfigurationProperty('value', IsRequired:=True)> _ Public Property DatabaseValue() As String Get Return Me('value').ToString() End Get Set(ByVal Value As String) Me('value') = Value End Set End Property End Class
I want to be able get the element by it’s name and return the value but I can’t see to do that:
Dim config As New DatabaseConfigurationHandler config = System.Configuration.ConfigurationManager.GetSection('databases/database') Return config.Databases('DatabaseOne')
Am I missing some code, what am I doing wrong? Any other errors in the above?
Thanks.
Here’s a cut and paste from something very similar I did a few days ago.
Config:
Config section C#:
And the code to pick it up from the main app: