-->

的AppSettings得到config文件值的AppSettings得到config文件值(App

2019-05-14 14:33发布

我不能够访问配置文件中的值。

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var clientsFilePath = config.AppSettings.Settings["ClientsFilePath"].Value; 
// the second line gets a NullReferenceException

config文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <!-- ... -->
    <add key="ClientsFilePath" value="filepath"/>
    <!-- ... -->
  </appSettings>
</configuration>

你有什么建议,我该怎么办?

Answer 1:

这对我的作品:

string value = System.Configuration.ConfigurationManager.AppSettings[key];


Answer 2:

这dtsg了作品的答案:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];

但你需要添加集的引用

系统配置

转到您的解决方案资源管理器右键单击引用,然后选择添加引用 。 选择组件选项卡并搜索配置

这里是我的App.config中的一个例子:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="AdminName" value="My Name"/>
    <add key="AdminEMail" value="MyEMailAddress"/>
  </appSettings>
</configuration>

您可以通过以下方式获得:

string adminName = ConfigurationManager.AppSettings["AdminName"];


Answer 3:

给这个一展身手:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];


Answer 4:

阅读从配置:

你将需要添加到配置参考

  1. 你的项目打开“属性”
  2. 进入“设置”选项卡
  3. 添加“名称”和“值”
  4. 获得值使用下面的代码:
string value = Properties.Settings.Default.keyname;

保存到配置:

Properties.Settings.Default.keyName = value;
Properties.Settings.Default.Save();


Answer 5:

我在用:

    ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
    //configMap.ExeConfigFilename = @"d:\test\justAConfigFile.config.whateverYouLikeExtension";
    configMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + ServiceConstants.FILE_SETTING;
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
    value1 = System.Configuration.ConfigurationManager.AppSettings["NewKey0"];
    value2 = config.AppSettings.Settings["NewKey0"].Value;
    value3 = ConfigurationManager.AppSettings["NewKey0"];

值1 = ...值3 = ...给空和值2 = ...作品

然后,我决定更换内部的app.config:

// Note works in service but not in wpf
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"d:\test\justAConfigFile.config.whateverYouLikeExtension");
ConfigurationManager.RefreshSection("appSettings");

string value = ConfigurationManager.AppSettings["NewKey0"];

使用VS2012的.NET 4



Answer 6:

app/web.config文件中设置以下配置:

<configuration>
  <appSettings>
    <add key="NameForTheKey" value="ValueForThisKey" />
    ... 
    ...    
  </appSettings>
...
...
</configuration>

那么你可以通过把在这行代码中的访问此:

string myVar = System.Configuration.ConfigurationManager.AppSettings["NameForTheKey"];

*请注意,此工作的优良.net4.5.x.net4.6.x ; 但不为工作.net core 。 最好的问候:拉斐尔



Answer 7:

一些问题的答案似乎有点过IMO这是我取大约2016

<add key="ClientsFilePath" value="filepath"/>

确保System.Configuration参考。

问题是要求一个的AppSettings

其中大部分当然应该

  string yourKeyValue = ConfigurationManager.AppSettings["ClientsFilePath"]

  //yourKeyValue should hold on the HEAP  "filepath"

这里是一个扭曲中,你可以组在一起值(不适用于这个问题)

var emails = ConfigurationManager.AppSettings[ConfigurationManager.AppSettings["Environment"] + "_Emails"];

emails将环境键+“_Emails”的价值

example :   jack@google.com;thad@google.com;


Answer 8:

对于Web应用程序,我通常会写这个方法,只是用钥匙调用它。

private String GetConfigValue(String key)
    {
       return System.Web.Configuration.WebConfigurationManager.AppSettings[key].ToString();
    }


Answer 9:

说回这一个很长一段时间后,...

鉴于ConfigurationManager中灭亡,任何人都仍然在寻找一个答案尝试(例如):

AppSettingsReader appsettingsreader = new AppSettingsReader();
string timeAsString = (string)(new AppSettingsReader().GetValue("Service.Instance.Trigger.Time", typeof(string)));

当然需要的System.Configuration。

(Editted代码的东西,实际工作和简单阅读)



Answer 10:

见我做了我认为是很明显的事情是:

string filePath = ConfigurationManager.AppSettings.GetValues("ClientsFilePath").ToString();

虽然,编译它总是返回null。

然而,这(从上面)工作原理:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];


Answer 11:

我简单的测试也失败了,按照这里的其他答案的建议 - 直到我意识到,我加入到我的桌面应用程序的配置文件被命名为“App1.config”。 我把它改名为“App.config中”,一切工作立即,因为它应该。



Answer 12:

你可以简单地输入:

string filePath = Sysem.Configuration.ConfigurationManager.AppSettings[key.ToString()];

因为key是对象AppSettings需要一个字符串



Answer 13:

  1. 你的项目打开“属性”
  2. 进入“设置”选项卡
  3. 添加“名称”和“值”

代码将自动生成

  <configuration> <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup ..." ... > <section name="XX....Properties.Settings" type="System.Configuration.ClientSettingsSection ..." ... /> </sectionGroup> </configSections> <applicationSettings> <XX....Properties.Settings> <setting name="name" serializeAs="String"> <value>value</value> </setting> <setting name="name2" serializeAs="String"> <value>value2</value> </setting> </XX....Properties.Settings> </applicationSettings> </configuration> 

为了得到一个值

Properties.Settings.Default.Name

要么

Properties.Settings.Default [ “名称”]



文章来源: AppSettings get value from .config file