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

cll*_*pse 10 c# web-config custom-attributes

我有一堆路由,我希望能够在我的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>
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Ric*_*ard 3

是的。一旦开始,就不会太难。

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

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

设置完所有这些后,在运行时您可以通过以下方式访问配置部分:

var myRoutes = ConfigurationManager.GetSection("routes") as RoutesConfigSection;
Run Code Online (Sandbox Code Playgroud)

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

正如另一个答案中所指出的,MSDN 上也有报道(比以前好得多)。