错误读取配置:无法从程序集&System; System.Configuration加载类型....

时间:2014-04-10 15:51:18

标签: c#

我很茫然......在致电

时收到错误
 var mySettings = ListOfOrgs.GetSettings();

无法加载类型' DetailedFaxByMonthByOrg.ListOfOrgsSection'来自assembly&System; System.Configuration,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。":" DetailedFaxByMonthByOrg.ListOfOrgsSection"}

有人可以帮忙吗?

配置:

<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
          <section name="ListOfOrgs" type="DetailedFaxByMonthByOrg.ListOfOrgsSection"/>

      </configSections>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>


      <ListOfOrgs>
        <Settings>
          <add name="myComp" userIds="12345,123475" GBuserIds="99999"></add>
          <add name="myComp2" userIds=" 58795,25362" GBuserIds="254300, 956482"></add>
        </Settings>
      </ListOfOrgs>
    </configuration>

代码:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DetailedFaxByMonthByOrg
{
    public class ListOfOrgs
    {
        public static ListOfOrgsSection _Config = ConfigurationManager.GetSection("ListOfOrgs") as ListOfOrgsSection;
        public static SettingsElementCollection GetSettings()
        {
            return _Config.Settings;
        }
    }
    public class ListOfOrgsSection : ConfigurationSection
    {
        [ConfigurationProperty("Settings")]
        public SettingsElementCollection Settings
        {
            get { return (SettingsElementCollection)this["Settings"]; }
        }
    }

    [ConfigurationCollection(typeof(OrgElement))]
    public class SettingsElementCollection : ConfigurationElementCollection
    {
        public OrgElement this[int index]
        {
            get { return (OrgElement)BaseGet(index); }
            set
            {
                if (BaseGet(index) != null)
                    BaseRemoveAt(index);

                BaseAdd(index, value);
            }
        }
        protected override ConfigurationElement CreateNewElement()
        {
            return new OrgElement();
        }

        protected override object GetElementKey(ConfigurationElement element)
        {
            return ((OrgElement)element).Name;
        }
    }
    public class OrgElement : ConfigurationElement
    {
        public OrgElement() { }

        [ConfigurationProperty("name", DefaultValue = "", IsKey = true, IsRequired = true)]
        public string Name
        {
            get { return (string)this["name"]; }
            set { this["name"] = value; }
        }

        [ConfigurationProperty("userIds", DefaultValue = "", IsRequired = true)]
        public string userIds
        {
            get { return (string)this["userIds"]; }
            set { this["userIds"] = value; }
        }

        [ConfigurationProperty("GBuserIds", DefaultValue = "", IsRequired = true)]
        public string GBuserIds
        {
            get { return (string)this["GBuserIds"]; }
            set { this["GBuserIds"] = value; }
        }

    }
}

1 个答案:

答案 0 :(得分:22)

符合documentation

<section 
   name="section name"
   type="configuration section handler class, assembly file name, version, culture, public key token"
 .....
 />

将configSection定义更新为

<section name="ListOfOrgs" type="DetailedFaxByMonthByOrg.ListOfOrgsSection, DetailedFaxByMonthByOrg">

它正在查找错误的程序集

相关问题