Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DecodeType() [1/2]

TType System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeType ( ref BlobReader blobReader,
bool allowTypeSpecifications,
int typeCode )
inlineprivate

Definition at line 29 of file SignatureDecoder.cs.

30 {
31 switch (typeCode)
32 {
33 case 1:
34 case 2:
35 case 3:
36 case 4:
37 case 5:
38 case 6:
39 case 7:
40 case 8:
41 case 9:
42 case 10:
43 case 11:
44 case 12:
45 case 13:
46 case 14:
47 case 22:
48 case 24:
49 case 25:
50 case 28:
51 return _provider.GetPrimitiveType((PrimitiveTypeCode)typeCode);
52 case 15:
53 {
54 TType elementType = DecodeType(ref blobReader);
55 return _provider.GetPointerType(elementType);
56 }
57 case 16:
58 {
59 TType elementType = DecodeType(ref blobReader);
60 return _provider.GetByReferenceType(elementType);
61 }
62 case 69:
63 {
64 TType elementType = DecodeType(ref blobReader);
65 return _provider.GetPinnedType(elementType);
66 }
67 case 29:
68 {
69 TType elementType = DecodeType(ref blobReader);
70 return _provider.GetSZArrayType(elementType);
71 }
72 case 27:
73 {
74 MethodSignature<TType> signature = DecodeMethodSignature(ref blobReader);
75 return _provider.GetFunctionPointerType(signature);
76 }
77 case 20:
78 return DecodeArrayType(ref blobReader);
79 case 31:
80 return DecodeModifiedType(ref blobReader, isRequired: true);
81 case 32:
82 return DecodeModifiedType(ref blobReader, isRequired: false);
83 case 21:
84 return DecodeGenericTypeInstance(ref blobReader);
85 case 19:
86 {
87 int index = blobReader.ReadCompressedInteger();
88 return _provider.GetGenericTypeParameter(_genericContext, index);
89 }
90 case 30:
91 {
92 int index = blobReader.ReadCompressedInteger();
93 return _provider.GetGenericMethodParameter(_genericContext, index);
94 }
95 case 17:
96 case 18:
97 return DecodeTypeHandle(ref blobReader, (byte)typeCode, allowTypeSpecifications);
98 default:
99 throw new BadImageFormatException(System.SR.Format(System.SR.UnexpectedSignatureTypeCode, typeCode));
100 }
101 }
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string UnexpectedSignatureTypeCode
Definition SR.cs:170
Definition SR.cs:7
TType DecodeModifiedType(ref BlobReader blobReader, bool isRequired)
TType DecodeTypeHandle(ref BlobReader blobReader, byte rawTypeKind, bool allowTypeSpecifications)
readonly ISignatureTypeProvider< TType, TGenericContext > _provider
MethodSignature< TType > DecodeMethodSignature(ref BlobReader blobReader)
TType DecodeGenericTypeInstance(ref BlobReader blobReader)
TType DecodeType(ref BlobReader blobReader, bool allowTypeSpecifications=false)

References System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >._genericContext, System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >._provider, System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeArrayType(), System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeGenericTypeInstance(), System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeMethodSignature(), System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeModifiedType(), System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeType(), System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeTypeHandle(), System.elementType, System.SR.Format(), System.index, and System.SR.UnexpectedSignatureTypeCode.