在Web.Config中自定义部分/集合
本文关键字:集合 自定义部 Web Config | 更新日期: 2023-09-27 18:10:58
我有一堆路由,我想把它们放到我的Web中。配置文件。我需要一个键和两个值字段为每个部分/项目的集合。
<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>
这可能吗?
是。一旦你有了开始,就不要太难了。
您需要创建一个ConfigurationSection
派生类来定义<routes>
部分(然后在配置中添加一个<section>
以将<routes>
元素链接到您的类型)。
然后需要一个类型来定义集合的每个元素,并且需要一个标记为默认值的集合的第二个类型的属性。
所有这些设置完成后,在运行时您可以如下方式访问配置部分:
var myRoutes = ConfigurationManager.GetSection("routes") as RoutesConfigSection;
我的博客有一些关于这个背景的文章:http://blog.rjcox.co.uk/category/dev/net-core/
正如另一个答案所指出的,MSDN上也有覆盖(比以前好多了)。
如果你不想创建一个类来表示你的配置部分,你可以这样做:
var configSection = ConfigurationManager.GetSection("sectionGroup/sectionName");
var aValue = (configSection as dynamic)["ValueKey"];
转换为动态可以让你访问configSection中的键值。您可能必须在configSection中添加断点和峰值,以查看那里有什么以及使用什么ValueKey。