无法为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’