如何在.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定义我的全局应用程序设置。

编辑

解决我用

Follwing这个帖子https://social.msdn.microsoft.com/Forums/vstudio/en-US/11e6d326-c32c-46b1-a9a2-1fbef96f33ee/howto-custom-configuration-files?forum=netfxbcl

在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> 
+0

我没有问题阅读web.config中,我有问题阅读app.config文件。 .. – nickornotto

+0

试试这个http://*.com/questions/11149556/app-config-change-value –

+0

我没有尝试它的工作,但它似乎是我寻找的解决方案,但我用另一种方法,例如。通过基于此https://social.msdn.microsoft.com/Forums/vstudio/en-US/11e6d326-c32c-46b1-a9a2-1fbef96f33ee/howto-custom-configuration-files创建具有自定义应用设置部分的自定义配置文件?forum = netfxbcl – nickornotto

您可以使用连接字符串和应用程序设置单独的配置文件:

<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