"Could not load type x from assembly" 尝试获取自定义配置部分时出现异常

"Could not load type x from assembly" Exception When Trying to Get Custom Configuration Section

当我尝试加载我定义的自定义配置部分时,我收到 "Could not load type x from assembly" 异常。在查看了几个类似的问题后,none 的答案有效。我确认我使用的是正确的完全限定 class 名称,以及正确的程序集名称。该程序集与声明相应配置节的配置文件位于同一文件夹中。尽管如此,我仍然收到错误消息。这是我的代码的简化版本:

namespace MyNamespace 
{
    public class MyClass
    {
        public MyClassConfigurationSection Configuration { get; set; }

        public void LoadConfiguration()
        {
            Configuration = ConfigurationManager.GetSection("mySection") as MyClassConfigurationSection;
        }

        public class MyClassConfigurationSection()
        {
            /* ... /*
        }
    }

问题原来是将自定义配置部分 class 定义嵌套在另一个 class 定义中。显然,配置管理器的加载逻辑无法实例化嵌套的 class,即使它是可公开访问的。只需将自定义配置 class 移出外部 class 并移入包含命名空间即可解决问题。