public static CallingConventionSignature FromReader(MetadataHeader header, IBinaryStreamReader reader)
{
var flag = reader.ReadByte();
reader.Position--;
switch ((CallingConventionAttributes)flag & SignatureTypeMask)
{
case CallingConventionAttributes.Default:
case CallingConventionAttributes.C:
case CallingConventionAttributes.ExplicitThis:
case CallingConventionAttributes.FastCall:
case CallingConventionAttributes.StdCall:
case CallingConventionAttributes.ThisCall:
case CallingConventionAttributes.VarArg:
return MethodSignature.FromReader(header, reader);
case CallingConventionAttributes.Property:
return PropertySignature.FromReader(header, reader);
case CallingConventionAttributes.Local:
return LocalVariableSignature.FromReader(header, reader);
case CallingConventionAttributes.GenericInstance:
return GenericInstanceMethodSignature.FromReader(header, reader);
case CallingConventionAttributes.Field:
return FieldSignature.FromReader(header, reader);
}
throw new NotSupportedException();
}