dll not reading .config ?

  • Thread starter Thread starter Søren M. Olesen
  • Start date Start date
S

Søren M. Olesen

Hi

I've created a Class library (myClasses.dll), and added a settings.settings
to it using designer.

However when I use this class library, it doesn't seem to read the settings
myClasses.dll.config file, instead I just get then initial values I used
when creating the settings.settings section.

What do I have to do to get the classlibrary to read the associated .config
file???

TIA

Søren
 
However when I use this class library, it doesn't seem to read the
settings myClasses.dll.config file, instead I just get then initial values
I used when creating the settings.settings section.

I've only ever seen these values read from an Application.EXE.config
which, annoyingly, means you have to ship these settings in every
application that uses your library.

Or, in a web application, (I think) these settings are read from the
web.config file.

HTH,
Phill W.
 
Phill,

I don't really see that as a problem in most situations. When you add
a reference to the assembly you should also add the appropriate
settings to the app.config at that time. In other words, you add them
at compile and not deployment time. Furthermore, even if the
configuration infrastructure supported the *.dll.config method you'd
still have to deploy that file to every machine, but now you have more
than one file to keep track of.

Brian
 
I just recently needed this functionality so here's the class I made to
accomplish it:

Imports System.Collections.Specialized
Imports System.Reflection.Assembly

Public Class AssemblyConfigurationSettings
Public Shared ReadOnly Property AppSettings() As NameValueCollection
Get
Dim filename As String = GetCallingAssembly.Location & ".config"
Dim settings As New NameValueCollection
If Not System.IO.File.Exists(filename) Then
Return settings
End If

Try
Dim reader As New System.Xml.XmlTextReader(filename)
Dim doc As New System.Xml.XmlDocument
doc.Load(reader)

Dim configurationNode As System.Xml.XmlNode =
doc.SelectSingleNode("configuration")
If configurationNode Is Nothing Then
Return settings
End If

Dim appSettingsNode As System.Xml.XmlNode =
configurationNode.SelectSingleNode("appSettings")
If appSettingsNode Is Nothing Then
Return settings
End If

Dim nodes As System.Xml.XmlNodeList =
appSettingsNode.SelectNodes("add")
For Each node As System.Xml.XmlNode In nodes
settings.Add(node.Attributes("key").Value,
node.Attributes("value").Value)
Next
Catch ex As System.Xml.XmlException
End Try

Return settings
End Get
End Property
End Class

/claes
 
Back
Top