I've got a bunch of routes that I want to be able to throw in my Web.Config file. I need one key and two value fields for each section/item in the collection. Something along the lines of this...
<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>
Is this possible?
Very similar sample here: http://jopinblog.wordpress.com/2007/04/20/custom-configurationsections-in-net-20-config-files/
This is official page for custom sections: http://msdn.microsoft.com/en-us/library/2tw134k3.aspx
Also, there is similar question here: How do I define custom web.config sections with potential child elements and attributes for the properties?
Yes. And not too hard once you have a start.
You'll need to create a ConfigurationSection
derived class to define the <routes>
section (and then add a <section>
to the configuration to link the <routes>
element to your type).
You'll then need a type to define each element of the collection and, flagged as default, a property on your second type for the collection.
After all this is set up, at runtime you access your configuration section as:
var myRoutes = ConfigurationManager.GetSection("routes") as RoutesConfigSection;
My blog has a few articles on the background to this: http://blog.rjcox.co.uk/category/dev/net-core/
As noted in another answer there is also coverage (a lot better than it used to be) on MSDN.
If you don't want to create a class to represent your config section you can do this:
var configSection = ConfigurationManager.GetSection("sectionGroup/sectionName");
var aValue = (configSection as dynamic)["ValueKey"];
Converting to dynamic lets you access the key values in configSection. You may have to add a break point and peak in configSection to see what is there and what ValueKey to use.
来源:https://stackoverflow.com/questions/7738178/custom-section-collection-in-web-config