How Do I get ConfigurationSettings from the calling assembly?

  • Thread starter Thread starter Rob Mayo
  • Start date Start date
R

Rob Mayo

I'm developing a server control for our intranet. This control is only going
to be used in two applications on the server, but they must be separate.

It has been established that these 2 apps will use a specifically named key
from their respective web.config's. I want the control to use that key
regardless of which application it's being used on.

How can I get that key from the application?

I considered creating a config file for the control, but that would be more
to maintain. We're using config files, because we don't want to use the
registry anymore. So the registry's out.

for example

visual basic
code:-----------------------------------------------------------------------
-------'In the app
Dim strConn As String = ConfigurationSettings.AppSettings.Item("EQDB")

'I want (in the control)
Dim strConn As String =
CallingApp.ConfigurationSettings.AppSettings.Item("EQDB")-------------------
-----------------------------------------------------------

I could pass in the values I want directly from the app(s), but that would
mean I would have to do that for every page in the app(s) that wanted to use
the control. That would be a maintenance nightmare.

I'm developing for developers, so I want them to be able to use this control
with as little hassle as possible.

Any ideas as to how to get this?
 
Create one config file for each app (web.config) and make sure they both
contain something like:

<appSettings>
<add key="EQDB" value="your data here" />

...

</appSettings>

As you are creating this for other developers, they will certainly be
comfortable with this approach.
 
Well, using: this.Page.Request.ApplicationPath from the WebControl, you
should be able to access the web.config file, though I'm unsure of what
permission issues might be involved, as I haven't done this myself. At that
point you could parse the XML using an XML reader.

Just an idea.

Pete
 
You could put all your configuration setting in your machine.config then all
your apps would have the appsetting section inherited from machin.config
 
System.Configuration.ConfigurationSettings.AppSettings[key] will work as per
the scope of the application you are using the control in.
 
They already do.

I wanted to know how to access that from the server control. There seemed to
be no visibly accessible property for accessing ConfigurationSettings of the
apps from the server control.

What I ended up doing was setting a global variable in the apps' Global.aspx
which was set to the value in the web.configs. From there I was able to
access that from the server control's Parent.Application object
 
You can use the same code you showed:
System.Configuration.ConfigurationSettings.AppSettings.Item("EQDB")
I have code using this approach and it works. Any code will have access to
whatever is in the application config file of the application that loaded
the code (your server control, for example).
It seems like a simple matter of missing Imports (C# using) statements..



--
TJoker, MCSD.NET
MVP: Paint, Notepad, Solitaire

****************************************


Rob Mayo said:
They already do.

I wanted to know how to access that from the server control. There seemed to
be no visibly accessible property for accessing ConfigurationSettings of the
apps from the server control.

What I ended up doing was setting a global variable in the apps' Global.aspx
which was set to the value in the web.configs. From there I was able to
access that from the server control's Parent.Application object

TJoker .NET said:
Create one config file for each app (web.config) and make sure they both
contain something like:

<appSettings>
<add key="EQDB" value="your data here" />

...

</appSettings>

As you are creating this for other developers, they will certainly be
comfortable with this approach.



--
TJoker, MCSD.NET
MVP: Paint, Notepad, Solitaire

****************************************


named
key
code:-----------------------------------------------------------------------CallingApp.ConfigurationSettings.AppSettings.Item("EQDB")-------------------
to
use
the control. That would be a maintenance nightmare.

I'm developing for developers, so I want them to be able to use this control
with as little hassle as possible.

Any ideas as to how to get this?
 
Back
Top