Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XmlElementListListener.cs
Go to the documentation of this file.
1
namespace
System.Xml
;
2
3
internal
sealed
class
XmlElementListListener
4
{
5
private
WeakReference<XmlElementList>
_elemList
;
6
7
private
readonly
XmlDocument
_doc
;
8
9
private
readonly XmlNodeChangedEventHandler
_nodeChangeHandler
;
10
11
internal
XmlElementListListener
(
XmlDocument
doc
,
XmlElementList
elemList
)
12
{
13
_doc
=
doc
;
14
_elemList
=
new
WeakReference<XmlElementList>
(
elemList
);
15
_nodeChangeHandler
=
OnListChanged
;
16
doc.NodeInserted
+=
_nodeChangeHandler
;
17
doc.NodeRemoved
+=
_nodeChangeHandler
;
18
}
19
20
private
void
OnListChanged
(
object
sender,
XmlNodeChangedEventArgs
args
)
21
{
22
lock
(
this
)
23
{
24
if
(
_elemList
!=
null
)
25
{
26
if
(
_elemList
.TryGetTarget(
out
var
target))
27
{
28
target.ConcurrencyCheck(
args
);
29
return
;
30
}
31
_doc.NodeInserted
-=
_nodeChangeHandler
;
32
_doc.NodeRemoved
-=
_nodeChangeHandler
;
33
_elemList
=
null
;
34
}
35
}
36
}
37
38
internal
void
Unregister
()
39
{
40
lock
(
this
)
41
{
42
if
(
_elemList
!=
null
)
43
{
44
_doc.NodeInserted
-=
_nodeChangeHandler
;
45
_doc.NodeRemoved
-=
_nodeChangeHandler
;
46
_elemList
=
null
;
47
}
48
}
49
}
50
}
System.WeakReference
Definition
WeakReference.cs:77
System.Xml.XmlDocument
Definition
XmlDocument.cs:13
System.Xml.XmlElementListListener.Unregister
void Unregister()
Definition
XmlElementListListener.cs:38
System.Xml.XmlElementListListener._elemList
WeakReference< XmlElementList > _elemList
Definition
XmlElementListListener.cs:5
System.Xml.XmlElementListListener._doc
readonly XmlDocument _doc
Definition
XmlElementListListener.cs:7
System.Xml.XmlElementListListener.OnListChanged
void OnListChanged(object sender, XmlNodeChangedEventArgs args)
Definition
XmlElementListListener.cs:20
System.Xml.XmlElementListListener.XmlElementListListener
XmlElementListListener(XmlDocument doc, XmlElementList elemList)
Definition
XmlElementListListener.cs:11
System.Xml.XmlElementListListener._nodeChangeHandler
readonly XmlNodeChangedEventHandler _nodeChangeHandler
Definition
XmlElementListListener.cs:9
System.Xml.XmlElementListListener
Definition
XmlElementListListener.cs:4
System.Xml.XmlElementList
Definition
XmlElementList.cs:6
System.Xml.XmlNodeChangedEventArgs
Definition
XmlNodeChangedEventArgs.cs:4
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.Xml
Definition
BaseRegionIterator.cs:1
source
System.Private.Xml
System.Xml
XmlElementListListener.cs
Generated by
1.10.0