如何在.NET应用程序中使用自定义配置文件或app.config
问题描述:
我有MVC5 .NET 4.6.1 C#web应用程序 我想创建一个与web.config分开的自定义配置文件,以存储我的应用程序使用的一些设置。如何在.NET应用程序中使用自定义配置文件或app.config
我试图按照本文https://support.microsoft.com/en-us/kb/815786
但是我的app.config设置的项目:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
</system.web>
<appSettings>
<add key="Key0" value="0" />
<add key="Key1" value="1" />
<add key="Key2" value="2" />
</appSettings>
</configuration>
在我的应用程序都不见见,例如。他们来作为空:
string attr = ConfigurationManager.AppSettings["Key0"];
为什么它不工作?我错过了什么吗?
另外我想创建一个自定义配置文件,例如。 mycustom.config定义我的全局应用程序设置。
编辑
解决我用
在web.config中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="newAppSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</configSections>
<newAppSettings file="C:\mycustom.config"/>
</configuration>
然后mycustom.config
<?xml version="1.0" encoding="utf-8" ?>
<newAppSettings>
<add key="OurKey" value="OurValue"/>
</newAppSettings>
和读取值:
System.Collections.Specialized.NameValueCollection newAppSettings = (System.Collections.Specialized.NameValueCollection)System.Configuration.ConfigurationManager.GetSection("newAppSettings");
string key = Convert.ToDateTime(newAppSettings["OurKey"]);
答
//Helps to open the Root level web.config file.
Configuration webConfigApp = WebConfigurationManager.OpenWebConfiguration("~");
//Modifying the AppKey from AppValue to AppValue1
webConfigApp.AppSettings.Settings["AppKey"].Value = "AppValue1";
<appSettings>
<add key="AppKey" value="AppValue"/>
</appSettings>
答
您可以使用连接字符串和应用程序设置单独的配置文件:
<appSettings configSource="appSettings.config" />
<connectionStrings configSource="connectionStrings.config"/>
appSettings.config文件
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="Setting1" value="App setting 1" />
</appSettings>
connectionStrings.config文件
<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
<add name="MyConnStr1" connectionString="My connection string" />
</connectionStrings>
用法是相同的,因为它以前:
var setting1 = ConfigurationManager.AppSettings["Setting1"];
var connString1 = ConfigurationManager.ConnectionStrings["MyConnStr1"].ConnectionString;
+0
不是我正在寻找的东西,但也很有用,但我没有尝试它的工作或没有 - 虽然我认为它确实如此。我使用了稍微不同的方法,这对我的应用程序更方便/个性化 - 请参阅我的编辑。感谢帮助 – nickornotto
我没有问题阅读web.config中,我有问题阅读app.config文件。 .. – nickornotto
试试这个http://*.com/questions/11149556/app-config-change-value –
我没有尝试它的工作,但它似乎是我寻找的解决方案,但我用另一种方法,例如。通过基于此https://social.msdn.microsoft.com/Forums/vstudio/en-US/11e6d326-c32c-46b1-a9a2-1fbef96f33ee/howto-custom-configuration-files创建具有自定义应用设置部分的自定义配置文件?forum = netfxbcl – nickornotto