无法为web.config创建自定义部分

我在web.config文件中创建了一个自定义部分,但它无法加载我要管理该部分的自定义类型。

以下是定义:

 
namespace MyApp.BusinessObjects { public class MembershipProviderFactory { internal virtual IMembershipProvider Create() { } public class MembershipProvidersSection : ConfigurationSection { public class AddElement: ConfigurationElement { [ConfigurationProperty("name", IsKey = true, IsRequired = true)] public string Name { get { return this["name"].ToString(); } set { this["name"] = value; } } [ConfigurationProperty("type", IsRequired = true)] public string FullyQualifiedTypeName { get { return this["type"].ToString(); } set { this["type"] = value; } } } public class AddElementCollection : ConfigurationElementCollection { protected override ConfigurationElement CreateNewElement() { return new AddElement(); } protected override object GetElementKey(ConfigurationElement element) { return ((AddElement)element).Name; } } [ConfigurationProperty("currentProvider", IsRequired = false)] public string CurrentProvider { get { return this["currentProvider"].ToString(); } set { this["currentProvider"] = value; } } [ConfigurationProperty("add", IsRequired = true, IsDefaultCollection = true)] public AddElementCollection Instances { get { return (AddElementCollection)this["add"]; } set { this["add"] = value; } } } } }

我得到一个运行时exception,说:

为MembershipProviders创建配置节处理程序时发生错误:无法加载类型“MyApp.BusinessObjects.MembershipProviderFactory.MembershipProvidersSection”。

更新

我还在配置文件中包含了实际部分,如下所示:

  

我仍然得到同样的例外。

您需要将程序集名称指定为type属性的一部分:

 

编辑
我没注意到MembershipProvidersSection类是一个嵌套类。
类型名称应为:

 MyApp.BusinessObjects.MembershipProviderFactory+MembershipProvidersSection 

您在声明类型时缺少程序集名称:

 MyApp.BusinessObjects.MembershipProviderFactory.MembershipProvidersSection,? 

看一下我关于自定义配置的post: C#WCF System.Configuration.ConfigurationErrorsException:无法识别的元素’ManagedService’