When creating my application's or library's configuration, I generally prefer using a custom configuration section over the <appSettings> section for the following reasons.
- Framework serialization to a user-defined configuration object; each config value has an appropriate type
- Configuration values may be validated against type and value ranges with attributes
Given this, when would I want to use the loose-typed <add/> key/value mechanism of the <appSettings> section? As I recall, application-level configuration in this section can override existing machine-level configuration from machine.config. Is this the only case, or are there other reasons?