/
IgnoreSection.cs
63 lines (51 loc) · 1.89 KB
/
IgnoreSection.cs
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Xml;
namespace System.Configuration
{
public sealed class IgnoreSection : ConfigurationSection
{
private static volatile ConfigurationPropertyCollection s_properties;
private bool _isModified;
private string _rawXml = string.Empty;
public IgnoreSection()
{
EnsureStaticPropertyBag();
}
protected internal override ConfigurationPropertyCollection Properties => EnsureStaticPropertyBag();
private static ConfigurationPropertyCollection EnsureStaticPropertyBag()
{
if (s_properties == null)
{
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
s_properties = properties;
}
return s_properties;
}
protected internal override bool IsModified()
{
return _isModified;
}
protected internal override void ResetModified()
{
_isModified = false;
}
protected internal override void Reset(ConfigurationElement parentSection)
{
_rawXml = string.Empty;
_isModified = false;
}
protected internal override void DeserializeSection(XmlReader xmlReader)
{
if (!xmlReader.Read() || (xmlReader.NodeType != XmlNodeType.Element))
throw new ConfigurationErrorsException(SR.Config_base_expected_to_find_element, xmlReader);
_rawXml = xmlReader.ReadOuterXml();
_isModified = true;
}
protected internal override string SerializeSection(ConfigurationElement parentSection, string name,
ConfigurationSaveMode saveMode)
{
return _rawXml;
}
}
}