probably at the beach
probably at the beach

Reputation: 15217

c# pattern for two applications sharing a configuration file

I have two applications that have many common configuration properties. When a configuration property of one changes, I want the other to change as well. Does anyone have a sensible way to accomplish this before I start off down the wrong track?

EDIT: I'm using .NET 2.0

Upvotes: 3

Views: 3844

Answers (3)

Kilanash
Kilanash

Reputation: 4559

One easy way to accomplish this is to use the configSource attribute in the app.config in both applications, and point this to a common file. Bingo, change one file, all apps are updated.

Check the MSDN documentation on it here.

Upvotes: 6

KeithS
KeithS

Reputation: 71573

You can create and reference a common configSource for the configuration section(s) involved. For instance, if you wanted a common set of AppSettings, copy your current appSettings to a new file (say appSettings.shared.config) and replace them in both app configs with this:

<appSettings configSource="appSettings.shared.config"/>

Here's more documentation: http://sunali.com/2008/01/23/configsource-property-dividing-configuration-files-into-pieces/

Far as I know, this cannot be done for an entire file, only sections, and each section will need its own file (and the section must still be declared in the configurationsections element of the app.config). But, this has a number of really cool uses; for instance, you can separate your connection strings into files geared towards different environments (local, development, testing, staging, production) and by changing one filename in one place you've now pointed your app at the different environment.

Upvotes: 7

Muad&#39;Dib
Muad&#39;Dib

Reputation: 29246

there are a couple of different ways you could do this:

  1. use the registry
  2. use a config file in a common location
  3. use a configuration table in a database

Upvotes: 3

Related Questions