in src/Refasmer/Importer/SignatureImport.cs [74:101]
private T AcceptSignatureWithHeader<T>(BlobHandle srcHandle, ISignatureVisitor<T> visitor)
{
var blobReader = _reader.GetBlobReader(srcHandle);
visitor.VisitReader(blobReader);
var header = blobReader.ReadSignatureHeader();
visitor.WriteByte(header.RawValue);
switch (header.Kind)
{
case SignatureKind.Method:
case SignatureKind.Property:
AcceptMethodSignature(header, ref blobReader, visitor);
break;
case SignatureKind.Field:
AcceptFieldSignature(ref blobReader, visitor);
break;
case SignatureKind.LocalVariables:
AcceptLocalSignature(ref blobReader, visitor);
break;
case SignatureKind.MethodSpecification:
AcceptMethodSpecSignature(ref blobReader, visitor);
break;
default:
throw new BadImageFormatException();
}
return visitor.GetResult();
}