Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
XmlExtensionFunctionTable.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
using
System.Diagnostics.CodeAnalysis
;
3
using
System.Reflection
;
4
5
namespace
System.Xml.Xsl.Runtime
;
6
7
internal
sealed
class
XmlExtensionFunctionTable
8
{
9
private
readonly
Dictionary<XmlExtensionFunction, XmlExtensionFunction>
_table
;
10
11
private
XmlExtensionFunction
_funcCached
;
12
13
public
XmlExtensionFunctionTable
()
14
{
15
_table
=
new
Dictionary<XmlExtensionFunction, XmlExtensionFunction>
();
16
}
17
18
public
XmlExtensionFunction
Bind
(
string
name,
string
namespaceUri,
int
numArgs
, [
DynamicallyAccessedMembers
(
DynamicallyAccessedMemberTypes
.PublicMethods |
DynamicallyAccessedMemberTypes
.NonPublicMethods)]
Type
objectType
,
BindingFlags
flags)
19
{
20
if
(
_funcCached
==
null
)
21
{
22
_funcCached
=
new
XmlExtensionFunction
();
23
}
24
_funcCached
.
Init
(name, namespaceUri,
numArgs
,
objectType
, flags);
25
if
(!
_table
.
TryGetValue
(
_funcCached
,
out
var
value
))
26
{
27
value
=
_funcCached
;
28
_funcCached
=
null
;
29
value
.
Bind
();
30
_table
.
Add
(
value
,
value
);
31
}
32
return
value
;
33
}
34
}
System.Collections.Generic.Dictionary.TryGetValue
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
Definition
Dictionary.cs:1419
System.Collections.Generic.Dictionary.Add
void Add(TKey key, TValue value)
Definition
Dictionary.cs:873
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Type
Definition
Type.cs:14
System.Xml.Xsl.Runtime.XmlExtensionFunctionTable._table
readonly Dictionary< XmlExtensionFunction, XmlExtensionFunction > _table
Definition
XmlExtensionFunctionTable.cs:9
System.Xml.Xsl.Runtime.XmlExtensionFunctionTable._funcCached
XmlExtensionFunction _funcCached
Definition
XmlExtensionFunctionTable.cs:11
System.Xml.Xsl.Runtime.XmlExtensionFunctionTable.Bind
XmlExtensionFunction Bind(string name, string namespaceUri, int numArgs, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods)] Type objectType, BindingFlags flags)
Definition
XmlExtensionFunctionTable.cs:18
System.Xml.Xsl.Runtime.XmlExtensionFunctionTable.XmlExtensionFunctionTable
XmlExtensionFunctionTable()
Definition
XmlExtensionFunctionTable.cs:13
System.Xml.Xsl.Runtime.XmlExtensionFunctionTable
Definition
XmlExtensionFunctionTable.cs:8
System.Xml.Xsl.Runtime.XmlExtensionFunction.Bind
void Bind()
Definition
XmlExtensionFunction.cs:94
System.Xml.Xsl.Runtime.XmlExtensionFunction.Init
void Init(string name, string namespaceUri, int numArgs, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods)] Type objectType, BindingFlags flags)
Definition
XmlExtensionFunction.cs:54
System.Xml.Xsl.Runtime.XmlExtensionFunction
Definition
XmlExtensionFunction.cs:8
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes
DynamicallyAccessedMemberTypes
Definition
DynamicallyAccessedMemberTypes.cs:5
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.Reflection.BindingFlags
BindingFlags
Definition
BindingFlags.cs:5
System.Reflection
Definition
ICustomTypeProvider.cs:1
System.Xml.Xsl.Runtime
Definition
AncestorDocOrderIterator.cs:4
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.ExceptionArgument.value
@ value
source
System.Private.Xml
System.Xml.Xsl.Runtime
XmlExtensionFunctionTable.cs
Generated by
1.10.0