繁体   English   中英

Web.Config中的自定义部分/集合

[英]Custom section/collection in Web.Config

我有一堆路由,我希望能够在我的Web.Config文件中抛出。 我需要为集合中的每个部分/项目添加一个键和两个值字段。 有点像这样......

<routes>
    <add
        key="AdministrationDefault"
        url="Administration/"
        file="~Administration/Default.aspx" />

    <add
        key="AdministrationCreateCampaign"
        url="Administration/CreateCampaign/"
        file="~/Administration/CreateCampaign.aspx" />

    <add
        key="AdministrationLogout"
        url="Administration/Leave/"
        file="~/Administration/Leave.aspx" />
</routes>

这可能吗?

如果您不想创建表示配置部分的类,则可以执行以下操作:

var configSection = ConfigurationManager.GetSection("sectionGroup/sectionName");
var aValue = (configSection as dynamic)["ValueKey"];

转换为动态可以访问configSection中的键值。 您可能必须在configSection中添加断点和峰值,以查看其中包含的内容以及要使用的ValueKey。

是。 一旦你有一个开始,并不是太难。

您需要创建一个ConfigurationSection派生类来定义<routes>部分(然后在配置中添加<section>以将<routes>元素链接到您的类型)。

然后,您需要一个类型来定义集合的每个元素,并将其标记为默认值,即集合的第二个类型的属性。

设置完毕后,在运行时,您可以访问配置部分:

var myRoutes = ConfigurationManager.GetSection("routes") as RoutesConfigSection;

我的博客有一些关于此背景的文章: http//blog.rjcox.co.uk/category/dev/net-core/

正如在另一个答案中所指出的,在MSDN上也有覆盖率(比以前好很多)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM