Get filename of current configuration file

2019-03-17 04:44发布

问题:

I'd think this would be simple, but I can't find an answer.

I'm using remoting and I want to store the RemotingConfiguration in the app.config. When I call RemotingConfiguration.Configure I have to supply the filename where the remoting information resides. So... I need to know the name of the current configuration file.

Currently I'm using this:

System.Reflection.Assembly.GetExecutingAssembly().Location + ".config"

But this only works for windows applications, not for web applications.

Isn't there any class that can supply me with the name of the current config file?

回答1:

Try AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

http://msdn.microsoft.com/en-us/library/system.appdomainsetup.configurationfile.aspx



回答2:

using System.Configuration;
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
Console.WriteLine(config.FilePath);

In the odd case that you have separate configuration files for specific local or roaming users, you can locate those as well using the correct ConfigurationUserLevel. For web applications, use

WebConfigurationManager.OpenWebConfiguration("~");