我的配置存储在app.config文件中,如下所示:
<configSections>
<sectionGroup name="FieldMappingSettings">
<section name="RequiredFields" type="System.Configuration.DictionarySectionHandler"/>
</sectionGroup>
</configSections>
<FieldMappingSettings>
<RequiredFields>
<add key="ColumnName 1" value="Config Value1" />
<add key="ColumnName 2" value="Config Value2" />
<add key="ColumnName 3" value="Config Value3" />
<add key="ColumnName 4" value="Config Value4" />
<add key="ColumnName 5" value="Config Value5" />
</RequiredFields>
</FieldMappingSettings>
我正在使用
读取这些键值对var requiredFields = (ConfigurationManager.GetSection("FieldMappingSettings/RequiredFields") as System.Collections.Hashtable)
.Cast<System.Collections.DictionaryEntry>()
.ToDictionary(n => n.Key.ToString(), n => n.Value.ToString());
我需要按相同的顺序使用此配置进行进一步处理,但是由于System.Collections.Hashtable
用于投射,因此这些键值未按其配置顺序存储({ {1}}使用哈希键存储它们。
所以问题是:
由于Hashtable
的返回类型为ConfigurationManager.GetSection()
,我们可以将其强制转换为object
而不是Dictionary<string, string>
吗?
或
还有其他方法可以读取键值对并保持其配置顺序吗?