public void Read(SignatureReader rdr)
        {
            byte p = rdr.ReadByte();

            if (p == 0x8)       //Normal  PROPERTY prolog
            {
                ht = false;
            }
            else if (p == 0x28) //HASTHIS PROPERTY prolog
            {
                ht = true;
            }
            else
            {
                throw new InvalidOperationException();
            }

            int pc = rdr.ReadCompressedInt();

            mods = new CustomModifierCollection();
            mods.Read(rdr);
            t  = TypeElement.ReadType(rdr);
            ps = new ParamCollection();
            ps.Read(rdr, pc);
        }
        public void Read(SignatureReader rdr)
        {
            f = (MethodFlags)rdr.ReadByte();
            if ((f & MethodFlags.Generic) == MethodFlags.Generic)
            {
                gc = rdr.ReadCompressedInt();
            }
            int c = rdr.ReadCompressedInt();

            rt = new RetTypeElement();
            rt.Read(rdr);
            ps = new ParamCollection();
            ps.Read(rdr, c);
        }