Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MemberReference.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
MemberReference
6
{
7
private
readonly
MetadataReader
_reader
;
8
9
private
readonly uint
_treatmentAndRowId
;
10
11
private
int
RowId
=> (int)(
_treatmentAndRowId
& 0xFFFFFF);
12
13
private
MemberRefTreatment
Treatment
=> (
MemberRefTreatment
)(
_treatmentAndRowId
>> 24);
14
15
private
MemberReferenceHandle
Handle
=>
MemberReferenceHandle
.
FromRowId
(
RowId
);
16
17
public
EntityHandle
Parent
18
{
19
get
20
{
21
if
(
Treatment
==
MemberRefTreatment
.None)
22
{
23
return
_reader
.
MemberRefTable
.
GetClass
(
Handle
);
24
}
25
return
GetProjectedParent
();
26
}
27
}
28
29
public
StringHandle
Name
30
{
31
get
32
{
33
if
(
Treatment
==
MemberRefTreatment
.None)
34
{
35
return
_reader
.
MemberRefTable
.
GetName
(
Handle
);
36
}
37
return
GetProjectedName
();
38
}
39
}
40
41
public
BlobHandle
Signature
42
{
43
get
44
{
45
if
(
Treatment
==
MemberRefTreatment
.None)
46
{
47
return
_reader
.
MemberRefTable
.
GetSignature
(
Handle
);
48
}
49
return
GetProjectedSignature
();
50
}
51
}
52
53
internal
MemberReference
(
MetadataReader
reader, uint treatmentAndRowId)
54
{
55
_reader
= reader;
56
_treatmentAndRowId
= treatmentAndRowId;
57
}
58
59
public
TType
DecodeFieldSignature<TType, TGenericContext>
(
ISignatureTypeProvider<TType, TGenericContext>
provider, TGenericContext genericContext)
60
{
61
SignatureDecoder<TType, TGenericContext>
signatureDecoder =
new
SignatureDecoder<TType, TGenericContext>
(provider,
_reader
, genericContext);
62
BlobReader
blobReader =
_reader
.
GetBlobReader
(
Signature
);
63
return
signatureDecoder.
DecodeFieldSignature
(ref blobReader);
64
}
65
66
public
MethodSignature<TType>
DecodeMethodSignature<TType, TGenericContext>
(
ISignatureTypeProvider<TType, TGenericContext>
provider, TGenericContext genericContext)
67
{
68
SignatureDecoder<TType, TGenericContext>
signatureDecoder =
new
SignatureDecoder<TType, TGenericContext>
(provider,
_reader
, genericContext);
69
BlobReader
blobReader =
_reader
.
GetBlobReader
(
Signature
);
70
return
signatureDecoder.
DecodeMethodSignature
(ref blobReader);
71
}
72
73
public
MemberReferenceKind
GetKind
()
74
{
75
return
_reader
.
GetBlobReader
(
Signature
).
ReadSignatureHeader
().
Kind
switch
76
{
77
SignatureKind.Method =>
MemberReferenceKind
.Method,
78
SignatureKind.Field =>
MemberReferenceKind
.Field,
79
_ =>
throw
new
BadImageFormatException
(),
80
};
81
}
82
83
public
CustomAttributeHandleCollection
GetCustomAttributes
()
84
{
85
return
new
CustomAttributeHandleCollection
(
_reader
,
Handle
);
86
}
87
88
private
EntityHandle
GetProjectedParent
()
89
{
90
return
_reader
.
MemberRefTable
.
GetClass
(
Handle
);
91
}
92
93
private
StringHandle
GetProjectedName
()
94
{
95
if
(
Treatment
==
MemberRefTreatment
.Dispose)
96
{
97
return
StringHandle
.
FromVirtualIndex
(
StringHandle
.
VirtualIndex
.Dispose);
98
}
99
return
_reader
.
MemberRefTable
.
GetName
(
Handle
);
100
}
101
102
private
BlobHandle
GetProjectedSignature
()
103
{
104
return
_reader
.
MemberRefTable
.
GetSignature
(
Handle
);
105
}
106
}
System.BadImageFormatException
Definition
BadImageFormatException.cs:10
System.Reflection.Metadata.MetadataReader.GetBlobReader
BlobReader GetBlobReader(BlobHandle handle)
Definition
MetadataReader.cs:944
System.Reflection.Metadata.MetadataReader.MemberRefTable
MemberRefTableReader MemberRefTable
Definition
MetadataReader.cs:95
System.Reflection.Metadata.MetadataReader
Definition
MetadataReader.cs:12
System.Signature
Definition
Signature.cs:8
System.Reflection.Metadata.ISignatureTypeProvider
Definition
ISignatureTypeProvider.cs:4
System.Reflection.Metadata.Ecma335.MemberRefTreatment
MemberRefTreatment
Definition
MemberRefTreatment.cs:5
System.Reflection.Metadata.Ecma335
Definition
ArrayShapeEncoder.cs:3
System.Reflection.Metadata.MemberReferenceKind
MemberReferenceKind
Definition
MemberReferenceKind.cs:4
System.Reflection.Metadata
Definition
AssemblyExtensions.cs:4
System.Reflection.Metadata.BlobHandle
Definition
BlobHandle.cs:6
System.Reflection.Metadata.BlobReader.ReadSignatureHeader
SignatureHeader ReadSignatureHeader()
Definition
BlobReader.cs:239
System.Reflection.Metadata.BlobReader
Definition
BlobReader.cs:10
System.Reflection.Metadata.CustomAttributeHandleCollection
Definition
CustomAttributeHandleCollection.cs:7
System.Reflection.Metadata.Ecma335.MemberRefTableReader.GetName
StringHandle GetName(MemberReferenceHandle handle)
Definition
MemberRefTableReader.cs:44
System.Reflection.Metadata.Ecma335.MemberRefTableReader.GetSignature
BlobHandle GetSignature(MemberReferenceHandle handle)
Definition
MemberRefTableReader.cs:38
System.Reflection.Metadata.Ecma335.MemberRefTableReader.GetClass
EntityHandle GetClass(MemberReferenceHandle handle)
Definition
MemberRefTableReader.cs:50
System.Reflection.Metadata.Ecma335.SignatureDecoder.DecodeMethodSignature
MethodSignature< TType > DecodeMethodSignature(ref BlobReader blobReader)
Definition
SignatureDecoder.cs:118
System.Reflection.Metadata.Ecma335.SignatureDecoder.DecodeFieldSignature
TType DecodeFieldSignature(ref BlobReader blobReader)
Definition
SignatureDecoder.cs:173
System.Reflection.Metadata.Ecma335.SignatureDecoder
Definition
SignatureDecoder.cs:6
System.Reflection.Metadata.EntityHandle
Definition
EntityHandle.cs:6
System.Reflection.Metadata.Handle
Definition
Handle.cs:6
System.Reflection.Metadata.MemberReferenceHandle.FromRowId
static MemberReferenceHandle FromRowId(int rowId)
Definition
MemberReferenceHandle.cs:16
System.Reflection.Metadata.MemberReferenceHandle
Definition
MemberReferenceHandle.cs:4
System.Reflection.Metadata.MemberReference.GetCustomAttributes
CustomAttributeHandleCollection GetCustomAttributes()
Definition
MemberReference.cs:83
System.Reflection.Metadata.MemberReference.MemberReference
MemberReference(MetadataReader reader, uint treatmentAndRowId)
Definition
MemberReference.cs:53
System.Reflection.Metadata.MemberReference.Name
StringHandle Name
Definition
MemberReference.cs:30
System.Reflection.Metadata.MemberReference.GetProjectedSignature
BlobHandle GetProjectedSignature()
Definition
MemberReference.cs:102
System.Reflection.Metadata.MemberReference.DecodeMethodSignature< TType, TGenericContext >
MethodSignature< TType > DecodeMethodSignature< TType, TGenericContext >(ISignatureTypeProvider< TType, TGenericContext > provider, TGenericContext genericContext)
Definition
MemberReference.cs:66
System.Reflection.Metadata.MemberReference.GetProjectedParent
EntityHandle GetProjectedParent()
Definition
MemberReference.cs:88
System.Reflection.Metadata.MemberReference.RowId
int RowId
Definition
MemberReference.cs:11
System.Reflection.Metadata.MemberReference.GetKind
MemberReferenceKind GetKind()
Definition
MemberReference.cs:73
System.Reflection.Metadata.MemberReference._reader
readonly MetadataReader _reader
Definition
MemberReference.cs:7
System.Reflection.Metadata.MemberReference.GetProjectedName
StringHandle GetProjectedName()
Definition
MemberReference.cs:93
System.Reflection.Metadata.MemberReference._treatmentAndRowId
readonly uint _treatmentAndRowId
Definition
MemberReference.cs:9
System.Reflection.Metadata.MemberReference.DecodeFieldSignature< TType, TGenericContext >
TType DecodeFieldSignature< TType, TGenericContext >(ISignatureTypeProvider< TType, TGenericContext > provider, TGenericContext genericContext)
Definition
MemberReference.cs:59
System.Reflection.Metadata.MemberReference.Parent
EntityHandle Parent
Definition
MemberReference.cs:18
System.Reflection.Metadata.MemberReference.Treatment
MemberRefTreatment Treatment
Definition
MemberReference.cs:13
System.Reflection.Metadata.MemberReference
Definition
MemberReference.cs:6
System.Reflection.Metadata.MethodSignature
Definition
MethodSignature.cs:6
System.Reflection.Metadata.SignatureHeader.Kind
SignatureKind Kind
Definition
SignatureHeader.cs:28
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
source
System.Reflection.Metadata
System.Reflection.Metadata
MemberReference.cs
Generated by
1.10.0