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

◆ ResolveSignatureTypeKind()

static SignatureTypeKind System.Reflection.Metadata.Ecma335.MetadataReaderExtensions.ResolveSignatureTypeKind ( this MetadataReader reader,
EntityHandle typeHandle,
byte rawTypeKind )
inlinestatic

Definition at line 261 of file MetadataReaderExtensions.cs.

262 {
263 if (reader == null)
264 {
265 throw new ArgumentNullException("reader");
266 }
268 switch (signatureTypeKind)
269 {
270 case SignatureTypeKind.Unknown:
271 return SignatureTypeKind.Unknown;
272 default:
273 throw new ArgumentOutOfRangeException("rawTypeKind");
274 case SignatureTypeKind.ValueType:
275 case SignatureTypeKind.Class:
276 switch (typeHandle.Kind)
277 {
278 case HandleKind.TypeDefinition:
279 return signatureTypeKind;
280 case HandleKind.TypeReference:
281 {
282 TypeRefSignatureTreatment signatureTreatment = reader.GetTypeReference((TypeReferenceHandle)typeHandle).SignatureTreatment;
283 return signatureTreatment switch
284 {
285 TypeRefSignatureTreatment.ProjectedToClass => SignatureTypeKind.Class,
286 TypeRefSignatureTreatment.ProjectedToValueType => SignatureTypeKind.ValueType,
287 TypeRefSignatureTreatment.None => signatureTypeKind,
289 };
290 }
291 case HandleKind.TypeSpecification:
292 return SignatureTypeKind.Unknown;
293 default:
294 throw new ArgumentOutOfRangeException("typeHandle", System.SR.Format(System.SR.UnexpectedHandleKind, typeHandle.Kind));
295 }
296 }
297 }
static Exception UnexpectedValue(object value)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string UnexpectedHandleKind
Definition SR.cs:20
Definition SR.cs:7

References System.SR.Format(), System.Reflection.Metadata.MetadataReader.GetTypeReference(), System.Reflection.Metadata.TypeReference.SignatureTreatment, System.SR.UnexpectedHandleKind, and System.Reflection.Internal.ExceptionUtilities.UnexpectedValue().