Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TypeReference.cs
Go to the documentation of this file.
1
using
System.Reflection.Metadata.Ecma335
;
2
3
namespace
System.Reflection.Metadata
;
4
5
public
readonly
struct
TypeReference
6
{
7
private
readonly
MetadataReader
_reader
;
8
9
private
readonly uint
_treatmentAndRowId
;
10
11
private
int
RowId
=> (int)(
_treatmentAndRowId
& 0xFFFFFF);
12
13
private
TypeRefTreatment
Treatment
=> (
TypeRefTreatment
)(
_treatmentAndRowId
>> 24);
14
15
private
TypeReferenceHandle
Handle
=>
TypeReferenceHandle
.
FromRowId
(
RowId
);
16
17
public
EntityHandle
ResolutionScope
18
{
19
get
20
{
21
if
(
Treatment
==
TypeRefTreatment
.None)
22
{
23
return
_reader
.
TypeRefTable
.
GetResolutionScope
(
Handle
);
24
}
25
return
GetProjectedResolutionScope
();
26
}
27
}
28
29
public
StringHandle
Name
30
{
31
get
32
{
33
if
(
Treatment
==
TypeRefTreatment
.None)
34
{
35
return
_reader
.
TypeRefTable
.
GetName
(
Handle
);
36
}
37
return
GetProjectedName
();
38
}
39
}
40
41
public
StringHandle
Namespace
42
{
43
get
44
{
45
if
(
Treatment
==
TypeRefTreatment
.None)
46
{
47
return
_reader
.
TypeRefTable
.
GetNamespace
(
Handle
);
48
}
49
return
GetProjectedNamespace
();
50
}
51
}
52
53
internal
TypeRefSignatureTreatment
SignatureTreatment
54
{
55
get
56
{
57
if
(
Treatment
==
TypeRefTreatment
.None)
58
{
59
return
TypeRefSignatureTreatment
.None;
60
}
61
return
GetProjectedSignatureTreatment
();
62
}
63
}
64
65
internal
TypeReference
(
MetadataReader
reader, uint treatmentAndRowId)
66
{
67
_reader
= reader;
68
_treatmentAndRowId
= treatmentAndRowId;
69
}
70
71
private
EntityHandle
GetProjectedResolutionScope
()
72
{
73
switch
(
Treatment
)
74
{
75
case
TypeRefTreatment
.SystemDelegate:
76
case
TypeRefTreatment
.SystemAttribute:
77
return
AssemblyReferenceHandle
.
FromVirtualIndex
(
AssemblyReferenceHandle
.
VirtualIndex
.System_Runtime);
78
case
TypeRefTreatment
.UseProjectionInfo:
79
return
MetadataReader
.
GetProjectedAssemblyRef
(
RowId
);
80
default
:
81
return
default
(
AssemblyReferenceHandle
);
82
}
83
}
84
85
private
StringHandle
GetProjectedName
()
86
{
87
if
(
Treatment
==
TypeRefTreatment
.UseProjectionInfo)
88
{
89
return
MetadataReader
.
GetProjectedName
(
RowId
);
90
}
91
return
_reader
.
TypeRefTable
.
GetName
(
Handle
);
92
}
93
94
private
StringHandle
GetProjectedNamespace
()
95
{
96
switch
(
Treatment
)
97
{
98
case
TypeRefTreatment
.SystemDelegate:
99
case
TypeRefTreatment
.SystemAttribute:
100
return
StringHandle
.
FromVirtualIndex
(
StringHandle
.
VirtualIndex
.System);
101
case
TypeRefTreatment
.UseProjectionInfo:
102
return
MetadataReader
.
GetProjectedNamespace
(
RowId
);
103
default
:
104
return
default
(
StringHandle
);
105
}
106
}
107
108
private
TypeRefSignatureTreatment
GetProjectedSignatureTreatment
()
109
{
110
if
(
Treatment
==
TypeRefTreatment
.UseProjectionInfo)
111
{
112
return
MetadataReader
.
GetProjectedSignatureTreatment
(
RowId
);
113
}
114
return
TypeRefSignatureTreatment
.None;
115
}
116
}
System.Reflection.Metadata.MetadataReader.GetProjectedSignatureTreatment
static TypeRefSignatureTreatment GetProjectedSignatureTreatment(int projectionIndex)
Definition
MetadataReader.cs:1321
System.Reflection.Metadata.MetadataReader.GetProjectedAssemblyRef
static AssemblyReferenceHandle GetProjectedAssemblyRef(int projectionIndex)
Definition
MetadataReader.cs:1306
System.Reflection.Metadata.MetadataReader.TypeRefTable
TypeRefTableReader TypeRefTable
Definition
MetadataReader.cs:77
System.Reflection.Metadata.MetadataReader.GetProjectedName
static StringHandle GetProjectedName(int projectionIndex)
Definition
MetadataReader.cs:1311
System.Reflection.Metadata.MetadataReader.GetProjectedNamespace
static StringHandle GetProjectedNamespace(int projectionIndex)
Definition
MetadataReader.cs:1316
System.Reflection.Metadata.MetadataReader
Definition
MetadataReader.cs:12
System.Reflection.Metadata.Ecma335.TypeRefTreatment
TypeRefTreatment
Definition
TypeRefTreatment.cs:4
System.Reflection.Metadata.Ecma335.TypeRefSignatureTreatment
TypeRefSignatureTreatment
Definition
TypeRefSignatureTreatment.cs:4
System.Reflection.Metadata.Ecma335
Definition
ArrayShapeEncoder.cs:3
System.Reflection.Metadata
Definition
AssemblyExtensions.cs:4
System.Reflection.Metadata.AssemblyReferenceHandle.VirtualIndex
VirtualIndex
Definition
AssemblyReferenceHandle.cs:6
System.Reflection.Metadata.AssemblyReferenceHandle.FromVirtualIndex
static AssemblyReferenceHandle FromVirtualIndex(VirtualIndex virtualIndex)
Definition
AssemblyReferenceHandle.cs:38
System.Reflection.Metadata.AssemblyReferenceHandle
Definition
AssemblyReferenceHandle.cs:4
System.Reflection.Metadata.Ecma335.TypeRefTableReader.GetResolutionScope
EntityHandle GetResolutionScope(TypeReferenceHandle handle)
Definition
TypeRefTableReader.cs:35
System.Reflection.Metadata.Ecma335.TypeRefTableReader.GetName
StringHandle GetName(TypeReferenceHandle handle)
Definition
TypeRefTableReader.cs:41
System.Reflection.Metadata.Ecma335.TypeRefTableReader.GetNamespace
StringHandle GetNamespace(TypeReferenceHandle handle)
Definition
TypeRefTableReader.cs:47
System.Reflection.Metadata.EntityHandle
Definition
EntityHandle.cs:6
System.Reflection.Metadata.Handle
Definition
Handle.cs:6
System.Reflection.Metadata.StringHandle.FromVirtualIndex
static StringHandle FromVirtualIndex(VirtualIndex virtualIndex)
Definition
StringHandle.cs:103
System.Reflection.Metadata.StringHandle.VirtualIndex
VirtualIndex
Definition
StringHandle.cs:8
System.Reflection.Metadata.StringHandle
Definition
StringHandle.cs:6
System.Reflection.Metadata.TypeReferenceHandle.FromRowId
static TypeReferenceHandle FromRowId(int rowId)
Definition
TypeReferenceHandle.cs:16
System.Reflection.Metadata.TypeReferenceHandle
Definition
TypeReferenceHandle.cs:4
System.Reflection.Metadata.TypeReference.SignatureTreatment
TypeRefSignatureTreatment SignatureTreatment
Definition
TypeReference.cs:54
System.Reflection.Metadata.TypeReference.GetProjectedNamespace
StringHandle GetProjectedNamespace()
Definition
TypeReference.cs:94
System.Reflection.Metadata.TypeReference.TypeReference
TypeReference(MetadataReader reader, uint treatmentAndRowId)
Definition
TypeReference.cs:65
System.Reflection.Metadata.TypeReference.GetProjectedName
StringHandle GetProjectedName()
Definition
TypeReference.cs:85
System.Reflection.Metadata.TypeReference.GetProjectedSignatureTreatment
TypeRefSignatureTreatment GetProjectedSignatureTreatment()
Definition
TypeReference.cs:108
System.Reflection.Metadata.TypeReference.RowId
int RowId
Definition
TypeReference.cs:11
System.Reflection.Metadata.TypeReference.ResolutionScope
EntityHandle ResolutionScope
Definition
TypeReference.cs:18
System.Reflection.Metadata.TypeReference.Namespace
StringHandle Namespace
Definition
TypeReference.cs:42
System.Reflection.Metadata.TypeReference._treatmentAndRowId
readonly uint _treatmentAndRowId
Definition
TypeReference.cs:9
System.Reflection.Metadata.TypeReference._reader
readonly MetadataReader _reader
Definition
TypeReference.cs:7
System.Reflection.Metadata.TypeReference.Treatment
TypeRefTreatment Treatment
Definition
TypeReference.cs:13
System.Reflection.Metadata.TypeReference.GetProjectedResolutionScope
EntityHandle GetProjectedResolutionScope()
Definition
TypeReference.cs:71
System.Reflection.Metadata.TypeReference.Name
StringHandle Name
Definition
TypeReference.cs:30
System.Reflection.Metadata.TypeReference
Definition
TypeReference.cs:6
source
System.Reflection.Metadata
System.Reflection.Metadata
TypeReference.cs
Generated by
1.10.0