1 //------------------------------------------------------------------------------
2 // <copyright file="SectionXmlInfo.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>
5 //------------------------------------------------------------------------------
6 
7 namespace System.Configuration {
8     using System.Configuration.Internal;
9     using System.Collections;
10     using System.Collections.Specialized;
11     using System.Collections.Generic;
12     using System.Configuration;
13     using System.Text;
14     using System.Threading;
15     using System.Reflection;
16     using System.Xml;
17 
18     internal sealed class SectionXmlInfo : IConfigErrorInfo {
19         private string  _configKey;                 // configKey
20         private string  _definitionConfigPath;      // the config path of the configuration record where this directive was defined
21         private string  _targetConfigPath;          // the full config path this location directive applies to
22         private string  _subPath;                   // the "path" attribute specified in the <location> directive
23         private string  _filename;                  // filename containg this section definition
24         private int     _lineNumber;                // line number where definition occurs
25         private object  _streamVersion;             // version of the filestream containing this section
26         private string  _configSource;              // the "configSource" attribute
27         private string  _configSourceStreamName;    // filename of the configSource
28         private object  _configSourceStreamVersion; // version of the configSource filestream
29         private bool    _skipInChildApps;           // skip inheritence by child apps?
30         private string  _rawXml;                    // raw xml input of the section
31         private string  _configBuilderName;          // name of the configuration provider
32         private string  _protectionProviderName;    // name of the protection provider
33 
34         private OverrideModeSetting _overrideMode;  // override mode for child config paths
35 
SectionXmlInfo( string configKey, string definitionConfigPath, string targetConfigPath, string subPath, string filename, int lineNumber, object streamVersion, string rawXml, string configSource, string configSourceStreamName, object configSourceStreamVersion, string configBuilderName, string protectionProviderName, OverrideModeSetting overrideMode, bool skipInChildApps)36         internal SectionXmlInfo(
37                 string configKey, string definitionConfigPath, string targetConfigPath, string subPath,
38                 string filename, int lineNumber, object streamVersion,
39                 string rawXml, string configSource, string configSourceStreamName, object configSourceStreamVersion,
40                 string configBuilderName, string protectionProviderName, OverrideModeSetting overrideMode, bool skipInChildApps) {
41 
42             _configKey = configKey;
43             _definitionConfigPath = definitionConfigPath;
44             _targetConfigPath = targetConfigPath;
45             _subPath = subPath;
46             _filename = filename;
47             _lineNumber = lineNumber;
48             _streamVersion  = streamVersion;
49             _rawXml = rawXml;
50             _configSource = configSource;
51             _configSourceStreamName = configSourceStreamName;
52             _configSourceStreamVersion = configSourceStreamVersion;
53             _configBuilderName = configBuilderName;
54             _protectionProviderName = protectionProviderName;
55             _overrideMode = overrideMode;
56             _skipInChildApps = skipInChildApps;
57         }
58 
59 
60         // IConfigErrorInfo interface
61         public string Filename {
62             get {return _filename;}
63         }
64 
65         public int LineNumber {
66             get {return _lineNumber;}
67             set {_lineNumber = value;}
68         }
69 
70         // other access methods
71         internal object StreamVersion {
72             get {return _streamVersion;}
73             set {_streamVersion = value;}
74         }
75 
76         internal string ConfigSource {
77             get {return _configSource;}
78             set {_configSource = value;}
79         }
80 
81         internal string ConfigSourceStreamName {
82             get {return _configSourceStreamName;}
83             set {_configSourceStreamName = value;}
84         }
85 
86         internal object ConfigSourceStreamVersion {
87 #if UNUSED_CODE
88             get {return _configSourceStreamVersion; }
89 #endif
90 
91             set {_configSourceStreamVersion = value; }
92         }
93 
94         internal string ConfigKey {
95             get {return _configKey;}
96         }
97 
98         internal string DefinitionConfigPath {
99             get {return _definitionConfigPath;}
100         }
101 
102         internal string TargetConfigPath {
103             get {return _targetConfigPath;}
104             set {_targetConfigPath = value;}
105         }
106 
107         internal string SubPath {
108             get {return _subPath;}
109         }
110 
111         internal string RawXml {
112             get {return _rawXml;}
113             set {_rawXml = value;}
114         }
115 
116         internal string ConfigBuilderName {
117             get { return _configBuilderName; }
118             set { _configBuilderName = value; }
119         }
120 
121         internal string ProtectionProviderName {
122             get {return _protectionProviderName;}
123             set {_protectionProviderName = value;}
124         }
125 
126         internal OverrideModeSetting OverrideModeSetting {
127             get { return _overrideMode; }
128             set { _overrideMode = value; }
129         }
130 
131         internal bool SkipInChildApps {
132             get {return _skipInChildApps;}
133             set {_skipInChildApps = value;}
134         }
135     }
136 }
137