[英]Unable to create a custom section for web.config
我在web.config文件中創建了一個自定義部分,但是它無法加載要管理該部分的自定義類型。
以下是定義:
<configSections>
<section
name="MembershipProviders"
type="MyApp.BusinessObjects.MembershipProviderFactory.MembershipProvidersSection"
allowLocation="true"
allowDefinition="Everywhere"
/>
</configSections>
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; }
}
}
}
}
我收到一個運行時異常消息:
為MembershipProviders創建配置節處理程序時發生錯誤:無法加載類型'MyApp.BusinessObjects.MembershipProviderFactory.MembershipProvidersSection'。
更新資料
我還將實際部分包含在配置文件中,如下所示:
<MembershipProviders currentProvider ="DefaultMembershipProvider" />
我仍然得到同樣的例外。
您需要將程序集名稱指定為type
屬性的一部分:
<section
name="MembershipProviders"
type="Namespace.TheCustomSection, TheAssemblyNameGoesHere"
allowLocation="true"
allowDefinition="Everywhere"
/>
編輯
我沒有注意到MembershipProvidersSection
類是一個嵌套類。
類型名稱應為:
MyApp.BusinessObjects.MembershipProviderFactory+MembershipProvidersSection
您在聲明類型的地方缺少程序集名稱:
MyApp.BusinessObjects.MembershipProviderFactory.MembershipProvidersSection,?
看看我有關自定義配置的文章之一: C#WCF System.Configuration.ConfigurationErrorsException:無法識別的元素“ ManagedService”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.