我尝试在app.settings中首次使用自定义配置。当我尝试调用配置时,我得到“无法识别的配置部分服务器”。我做错了什么?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<sectionGroup name="servers" type="System.Configuration.NameValueSectionHandler"></sectionGroup>
<sectionGroup name="services" type="System.Configuration.NameValueSectionHandler"></sectionGroup>
<!--<section name="servers.myServers" type="System.Configuration.NameValueFileSectionHandler" />-->
<!--<section name="services.myServices" type="System.Configuration.NameValueFileSectionHandler" />-->
<section name="ServiceMonitor.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<servers>
<myServers>
<add key="server1" value="myserverhost"/>
</myServers>
</servers>
<services>
<myServices>
<add key="service1" value="spooler"/>
<add key="service2" value="Apple Mobile Device"/>
</myServices>
</services>
<userSettings>
<ServiceMonitor.Properties.Settings>
<setting name="service1" serializeAs="String">
<value>spooler</value>
</setting>
<setting name="service2" serializeAs="String">
<value>Apple Mobile Device</value>
</setting>
</ServiceMonitor.Properties.Settings>
</userSettings>
<appSettings>
<add key="service1" value="spooler"/>
<add key="service2" value="Apple Mobile Device"/>
</appSettings>
</configuration>
这是我用来调用配置的C#代码。
NameValueCollection settings = ConfigurationManager.GetSection("servers/myServers") as NameValueCollection;
if (settings != null)
{
foreach (string key in settings)
{
Console.WriteLine("{0} : {1}", key, settings[key]);
}
}
答案 0 :(得分:1)
我认为您需要添加section元素(在您的示例中已注释掉):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="services">
<section name="myServices"
type="System.Configuration.NameValueSectionHandler" />
</sectionGroup>
</configSections>
</configuration>