C# 返回集合属性的自定义WebConfig节
我在访问my pages元素的属性集合属性“name”时遇到问题。Pages有一个具有属性的页面集合字段。有人可以看看我的代码,告诉我如何在每个页面上都有一个名称属性的页面集合,并访问它的值。目前,我的代码只返回没有任何错误的页面加载,所以我不知道发生了什么以及如何获取属性字段C# 返回集合属性的自定义WebConfig节,c#,asp.net,C#,Asp.net,我在访问my pages元素的属性集合属性“name”时遇到问题。Pages有一个具有属性的页面集合字段。有人可以看看我的代码,告诉我如何在每个页面上都有一个名称属性的页面集合,并访问它的值。目前,我的代码只返回没有任何错误的页面加载,所以我不知道发生了什么以及如何获取属性字段 <configSections> <sectionGroup name="site" type="MyProject.Configuration.Site"> <section
<configSections>
<sectionGroup name="site" type="MyProject.Configuration.Site">
<section name="pages" type="MyProject.Configuration.Pages"/>
</sectionGroup>
</configSections>
<site>
<pages>
<page name="test">
</page>
</pages>
</site>
访问我的属性的代码:
Pages pageSettings = ConfigurationManager.GetSection("site/pages") as Pages;
lblPage.Text = pageSettings.Page[0].Name;
问题是您的节元素应该是站点,而不是页面:
public class Site: ConfigurationSection
{
[ConfigurationProperty("pages")]
public PageCollection Page
{
get
{
return base["pages"] as PageCollection;
}
}
}
更新
事实证明,有几个问题需要解决:
1) 需要将web.config更改为节而不是节组,并且应删除pages元素:
<configSections>
<section name="site" type="MyProject.Configuration.Site, MyProject.Configuration">
</section>
</configSections>
3) PageCollection构造函数需要删除其代码
public PageCollection()
{
}
4) 需要从PageCollection中删除name属性,或者至少将其标记为不需要
5) 检索设置的调用现在是:
Site site = ConfigurationManager.GetSection("site") as Site;
我已经对此进行了测试,并验证了这些更改将在配置中成功读取。问题在于您的节元素应该是站点,而不是页面:
public class Site: ConfigurationSection
{
[ConfigurationProperty("pages")]
public PageCollection Page
{
get
{
return base["pages"] as PageCollection;
}
}
}
更新
事实证明,有几个问题需要解决:
1) 需要将web.config更改为节而不是节组,并且应删除pages元素:
<configSections>
<section name="site" type="MyProject.Configuration.Site, MyProject.Configuration">
</section>
</configSections>
3) PageCollection构造函数需要删除其代码
public PageCollection()
{
}
4) 需要从PageCollection中删除name属性,或者至少将其标记为不需要
5) 检索设置的调用现在是:
Site site = ConfigurationManager.GetSection("site") as Site;
我已经对此进行了测试,并验证了这些更改将成功地在配置中读取。我已经纠正了这一点,但仍然没有获得collectionI的属性值。我已经更新了代码,它可以正常工作,除了在类指令中的PageCollection类。BaseAdd(元素)不起作用,但是如果我删除它,它就会起作用。你知道如何修复我的代码,这样我就可以使它起作用吗properly@KDM:类指令(又名构造函数)中不应包含任何代码。配置处理将自动添加适当的页面元素,所以你不需要这么做。好的,谢谢你,非常感谢你的帮助祝你新年快乐,伙计。我纠正了这一点,但我仍然没有得到集合的属性值。我更新了代码,它可以工作,除了在类指令中的PageCollection类。BaseAdd(元素)不起作用,但是如果我删除它,它就会起作用。你知道如何修复我的代码,这样我就可以使它起作用吗properly@KDM:类指令(又名构造函数)中不应包含任何代码。配置处理将自动添加适当的页面元素,因此您无需这样做。好的,谢谢您的帮助,非常感谢您的帮助,祝您新年快乐