2016-04-28 72 views
0

我有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"]); 

回答

-1
  //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://stackoverflow.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

1

您可以使用連接字符串和應用程序設置單獨的配置文件:

<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

相關問題