2014-09-10 80 views
0

我有一个自定义配置节里,我需要一个新的NameValue东西添加到它添加一个新的集合自定义配置节

这里是层次

-organizationConfigurations 
|-organizationConfigSelector 
|-specificConfigurations 
    |-organizationConfig 

现在我需要添加一个元素称为skipLanguagesorganizationConfig这只是一个简单的集合元素,它只是保存字符串。下面是XML样本

<?xml version="1.0" encoding="utf-8" ?> 

<matcher type="Host" match="HORNET" serviceName="config-hornet"/> 
<matcher type="Parameter" match="VTDEV" serviceName="config-test-server"/> 

<organizationConfig name="config-hornet"> 
    <add name="Organization_Identifier" value="SampleOrg"/> 

    <add name="Allow_SelfRegistration" value="true"/> 

    <add name="ApplicationSelector" value=""/> 
    <add name="RegistrationSelector" value=""/> 

    <add name="EnrollPinValidity" value="00.00:01:00"/> 
    <add name="EnrollIncoming" value=""/> 
    <add name="EnrollOutgoing" value="PIN"/> 

    <add name="EnrollmentLockout" value="00.00:01:00"/> 
    <add name="PinLockout" value="00.00:00:30"/> 

    <skipLanguages> 
    <add name="en"/> 
    <add name="ur-UR" /> 
    </skipLanguages> 

    <add name="Menu_Hide_Details" value="false"/> 
    <add name="International_Format_Example" value="00971559559123"/> 

    <add name="Service_Operator_Name" value="admin"/> 
    <add name="Service_Operator_Password" value="admin"/> 

    <add name="Service_Operator_Address_VTadp" value="https://hornet.org.com:1337/main/basicHttp"/> 
    <add name="Service_Operator_Address_Admin" value="https://hornet.org.com:1337/Admn/basicHttp"/> 
    <add name="Service_Operator_Address_PWR" value="https://hornet.org.com:1337/PWR/basicHttp"/> 

</organizationConfig> 

specificConfigurations & 的类organizationConfig &是:

[ConfigurationCollection(typeof(OrganizationConfig), AddItemName = "organizationConfig")] 
    public class SpecificConfigurations : ConfigurationElementCollection 
    { 
     #region Indexer 
     public OrganizationConfig this[int index] 
     { 
      get { return BaseGet(index) as OrganizationConfig; } 
      set 
      { 
       if (BaseGet(index) != null) 
       { 
        BaseRemoveAt(index); 
       } 

       BaseAdd(index, value); 
      } 
     } 
     #endregion 

     #region Public Method(s) 
     public OrganizationConfig GetServiceInfo(string serviceName) 
     { 
      return BaseGet(serviceName) as OrganizationConfig; 
     } 
     #endregion 

     #region Overridden Method(s) 
     protected override ConfigurationElement CreateNewElement() 
     { 
      return new OrganizationConfig(); 
     } 

     protected override object GetElementKey(ConfigurationElement element) 
     { 
      return ((OrganizationConfig)element).Name; 
     } 
     #endregion 
    } 

    public class OrganizationConfig : ConfigurationSection 
    { 
     #region Configuration Properties 
     [ConfigurationProperty("name", IsRequired = true)] 
     public string Name 
     { 
      get { return this["name"] as string; } 
      set { this["name"] = value; } 
     } 

     [ConfigurationProperty("", IsDefaultCollection = true)] 
     public NameValueConfigurationCollection Settings 
     { 
      get { return (NameValueConfigurationCollection)base[""]; } 
     } 
     #endregion 
    } 
+0

暂时,我添加了SkipLanguages作为一个NameValue对与价值作为分号分隔字符串与语言隐藏/块 – DoomerDGR8 2014-09-11 11:30:06

回答

0

暂时,我添加SkipLanguages作为具有值NameValue对与语言分号分隔的字符串隐藏/块。显然,这工作得很好,也被铅接受。所以,我用我自己的答案来完成这个问题。