C# 自定义配置部分中的多个元素

C# 自定义配置部分中的多个元素,c#,vb.net,visual-studio-2010,web-config,configurationsection,C#,Vb.net,Visual Studio 2010,Web Config,Configurationsection,更新:自定义配置异常困难!>虽然我已经学习了一些关于XML的知识;显然,在元素中存储CDATA是不可能的,所以我重新表述了这个问题,以适应修改后的结构。为了清楚起见,请问我任何问题。我在这个问题上断断续续地工作了大约一个月,不断遇到各种各样的问题 我一直在遵循下面引用的文章中的MSDN示例,但在将这个概念应用到我的案例中时遇到了困难。我的项目是VS2010中的一个VB.NET 4.0 Web应用程序,但C#中的答案也可以(只要解决方案在VB中工作即可):)以下是相关代码: 呼叫: Dim con

更新:自定义配置异常困难!>虽然我已经学习了一些关于XML的知识;显然,在元素中存储CDATA是不可能的,所以我重新表述了这个问题,以适应修改后的结构。为了清楚起见,请问我任何问题。我在这个问题上断断续续地工作了大约一个月,不断遇到各种各样的问题

我一直在遵循下面引用的文章中的MSDN示例,但在将这个概念应用到我的案例中时遇到了困难。我的项目是VS2010中的一个VB.NET 4.0 Web应用程序,但C#中的答案也可以(只要解决方案在VB中工作即可):)以下是相关代码:

呼叫

Dim conf As apiesection=CType(ConfigurationManager.GetSection(“remoteServiceApi/site”),apiesection)
异常(配置错误异常)

该元素在此部分中只能出现一次。
请注意以下相关代码

模式


尽管我在web.config文件的模式集中添加并激活了上述内容,但它似乎并没有真正起作用(这可能是问题所在吗

Web.Config


类文件

导入系统配置
命名空间RemoteServiceApi
公营部门
继承配置部分
_
公共属性site()作为SiteElement
得到
返回CType(Me(“站点”),SiteElement)
结束
设置(值为SiteElement)
Me(“现场”)=价值
端集
端属性
末级
公共类sitelement
继承ConfigurationElement
_
公共属性环境()作为字符串
得到
返回CStr(Me(“环境”))
结束
设置(值为字符串)
Me(“环境”)=价值
端集
端属性
_
作为字符串的公共只读属性APIKey()
得到
返回CStr(Me(“APIKey”))
结束
端属性
_
公共只读属性APIUsername()作为字符串
得到
返回CStr(Me(“APIUsername”))
结束
端属性
_
作为字符串的公共只读属性APIPassword()
得到
返回CStr(Me(“API密码”))
结束
端属性
末级
公共枚举环境
生产
沙箱
结束枚举
结束命名空间
我使用的参考资料作为指南:

  • (2004年出版,因此谨慎跟进)

您需要将
站点
元素设置为一个集合(基于您发布的Web.config)。请尝试以下操作(在C#中,对不起):

此类将包装
sitelement
,允许您拥有该元素的多个实例

下一部分我不是100%确定,因为我从未在该部分下使用过
ConfigurationElementCollection
,但您需要引用该集合

举个例子(这不太适合您尝试做的事情,但希望适合),假设您在节组下有一个节名
Sites
。您可以这样做:

public SiteElementCollection Sites
{
    get
    {
        return (SiteElementCollection)base["site"];
    }
}
我希望这至少为您提供了一个遵循的方向。这里的关键是在需要给定元素的多个实例时使用

public SiteElementCollection Sites
{
    get
    {
        return (SiteElementCollection)base["site"];
    }
}