views:

80

answers:

2

Should be simple, but whatever I try returns null:

const string key = "system.web";

var sectionTry1 = WebConfigurationManager.GetSection(key);

var sectionTry2 = ConfigurationManager.GetSection(key);

I'm sure I have done this before.

I am using MVC if this makes a difference.

+1  A: 

I think accessing system.web is slightly different to accessing appSettings.

Try this:

 string configPath = "/MyAppRoot";

        Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);

        IdentitySection section =
          (IdentitySection)config.GetSection("system.web/identity");

You need to cast the relevant section of system.web you're trying to access to a particular type.

RPM1984
Thanks, that works fine. Just realised that it was the key that I was using that was causing the problem. See my answer.
zaph0d
+1  A: 

Was being an idiot - system.web is not a config section but a config group. If I change the key to an actual section, then both methods work fine. Here's the one using ConfigurationManager:

const string outputCacheSettingsKey = "system.web/caching/outputCacheSettings";           

var outputCacheSettingsSection = ConfigurationManager.GetSection(outputCacheSettingsKey) as OutputCacheSettingsSection;
zaph0d