File: IConfigurationSectionHandler.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,512 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,093; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (48 lines) | stat: -rw-r--r-- 2,223 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//------------------------------------------------------------------------------
// <copyright file="IConfigurationSectionHandler.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------

namespace System.Configuration {

    // The IConfigSectionHandler interface defines the contract that all configuration
    // section handlers must implement in order to participate in the resolution of
    // configuration settings.
    //
    // Composes and creates config objects.
    //
    // This interface is implemented by config providers.
    // Classes implementing IConfigSectionHandler define the rules for cooking
    // XML config into usable objects. The cooked objects
    // can be of arbitrary type.
    //
    // Configuration is composable (e.g., config in a child
    // directory is layered over config in a parent directory),
    // so, IConfigSectionHandler is supplied with the parent config
    // as well as any number of XML fragments.
    public interface IConfigurationSectionHandler {

        // Create
        //
        // @param parent the object inherited from parent path
        // @param context reserved, in ASP.NET used to convey virtual path of config being evaluated
        // @param section the xml node rooted at the section to handle
        // @returns a new config object
        //
        // The function is responsible for inspecting "section", "context",
        // and "parent", and creating a config object.
        //
        // Note that "parent" is guaranteed to be an object that
        // was returned from a Create call on the same IConfigSectionHandler
        // implementation. (E.g., if Create returns a Hashtable,
        // then "parent" is always a Hashtable if it's non-null.)
        //
        // Returned objects must be immutable. In particular,
        // it's important that the "parent" object being passed
        // in is not altered: if a modification must be made,
        // then it must be cloned before it is modified.
        object Create(Object parent, Object configContext, System.Xml.XmlNode section);

    }
}