Question

As far as I understand, I should use System.Configuration.ConfigurationManager to read app settings in desktop applications, and System.Web.Configuration.WebConfigurationManager to do the same thing in web applications. This is what MSDN says.

I am developing a component that will be deployed to both desktops and web servers, so I am trying to make configuration logic independent of the platform. To my surprise, I discovered by accident that app settings are read correctly by using System.Configuration.ConfigurationManager on a web server.

I have two related questions:

  1. Can anyone confirm that this works systematically?
  2. What are the limitations or risks of using System.Configuration.ConfigurationManager on web applications?

Thanks.

Était-ce utile?

La solution

MSDN says that WebConfigurationManager is the preferred way to work with configuration files in web applications.

In web applications, configuration can be inherited from a web.config file in a parent virtual directory: WebConfigurationManager will handle such inherited settings properly, which I believe isn't the case for ConfigurationManager.

Of course, if your application does not inherit such settings (e.g. is always at the root of a web site), this is not relevant to you.

Autres conseils

The System.Web.Configuration.WebConfigurationManager.AppSettings and System.Web.Configuration.WebConfigurationManager.ConnectionStrings internally uses the same System.Configuration.ConfigurationManager - so there is no difference.

MSDN says:

These methods perform read-only operations, use a single cached instance of the configuration, and are multithread aware.

The other methods of the System.Web.Configuration.WebConfigurationManager are related to configuration of ASP.NET. I consider the System.Web.Configuration.WebConfigurationManager as extension of ConfigurationManager, or even adaptation for the web ecosystem.

So, you should use the generic System.Configuration.ConfigurationManager.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top