我有一个c#应用程序,它使用配置文件来访问值。 我希望根据变量的值从此配置文件中检索值。
这是一个配置文件:
<appsettings>
<add key="1" value="10"/>
<add key="2" value="20"/>
<add key="3" value="30"/>
<add key="4" value="40"/>
<add key="5" value="40"/>
<add key="6" value="60"/>
<add key="7" value="70"/>
<add key="8" value="80"/>
<add key="9" value="90"/>
</appsettings>
我在程序中声明了一个变量,表示当月的int。
int intCurDay = DateTime.Now.Day;
试图提取出与特定intCurDay
对应的密钥,尝试过两种方式,但无法弄明白。
int valueToUse = Convert.ToInt32(ConfigurationManager.AppSettings["{0}"],intCurDay)
int valueToUse = Convert.ToInt32(ConfigurationManager.AppSettings["\"" + intCurDay + "\"")
答案 0 :(得分:3)
这应该有效:
int valueToUse = Convert.ToInt32(ConfigurationManager.AppSettings[intCurDay.ToString()]);
其他方法(不推荐 - 只是让你看到第一次尝试出错的地方):
int valueToUse = Convert.ToInt32(ConfigurationManager.AppSettings[string.Format("{0}",intCurDay)]);
int valueToUse = Convert.ToInt32(ConfigurationManager.AppSettings["" + intCurDay + ""])
答案 1 :(得分:0)
我不知道密钥,但是为了从App.config
文件中获取变量,这种方式更好用,System.Configuration.ConfigurationManager.AppSettings
已被弃用:
<applicationSettings>
<nameOfNamespace.nameOfSettingsFile>
<setting name="MAX_TRIES" serializeAs="String">
<value>5</value>
</setting>
</nameOfNamespace.nameOfSettingsFile>
</applicationSettings>
你可以在VS中创建一个.settings文件,在项目中添加一个新元素并选择设置文件(它的外观是一个齿轮)并在那里创建变量而不是App.config
文件。
然后你可以轻松使用这个:
int MAX_TRIES = nameOfNamespace.nameOfSettingsFile.Default.MAX_TRIES;