Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Component.cs
Go to the documentation of this file.
2
3[DesignerCategory("Component")]
5{
6 private static readonly object s_eventDisposed = new object();
7
8 private ISite _site;
9
11
12 protected virtual bool CanRaiseEvents => true;
13
15
16 protected EventHandlerList Events => _events ?? (_events = new EventHandlerList(this));
17
18 [Browsable(false)]
20 public virtual ISite? Site
21 {
22 get
23 {
24 return _site;
25 }
26 set
27 {
28 _site = value;
29 }
30 }
31
32 [Browsable(false)]
35
36 [Browsable(false)]
38 protected bool DesignMode => _site?.DesignMode ?? false;
39
40 [Browsable(false)]
41 [EditorBrowsable(EditorBrowsableState.Advanced)]
42 public event EventHandler? Disposed
43 {
44 add
45 {
46 Events.AddHandler(s_eventDisposed, value);
47 }
48 remove
49 {
50 Events.RemoveHandler(s_eventDisposed, value);
51 }
52 }
53
55 {
56 Dispose(disposing: false);
57 }
58
59 public void Dispose()
60 {
61 Dispose(disposing: true);
62 GC.SuppressFinalize(this);
63 }
64
65 protected virtual void Dispose(bool disposing)
66 {
67 if (!disposing)
68 {
69 return;
70 }
71 lock (this)
72 {
73 _site?.Container?.Remove(this);
74 if (_events != null)
75 {
77 }
78 }
79 }
80
81 protected virtual object? GetService(Type service)
82 {
83 return _site?.GetService(service);
84 }
85
86 public override string ToString()
87 {
88 ISite site = _site;
89 if (site == null)
90 {
91 return GetType().FullName;
92 }
93 return site.Name + " [" + GetType().FullName + "]";
94 }
95}
virtual void Dispose(bool disposing)
Definition Component.cs:65
virtual ? object GetService(Type service)
Definition Component.cs:81
static readonly object s_eventDisposed
Definition Component.cs:6
override string ToString()
Definition Component.cs:86
static readonly EventArgs Empty
Definition EventArgs.cs:9
static void SuppressFinalize(object obj)
Definition GC.cs:202
Definition GC.cs:8
void Remove(IComponent? component)
IContainer? Container
Definition ISite.cs:9
object? GetService(Type serviceType)
delegate void EventHandler(object? sender, EventArgs e)