public void Read(SignatureReader rdr) { if (rdr.GetElementTypeAhead() != ElementType.TypedByRef) { mod = new LocalVarModCollection(); mod.Read(rdr); if (rdr.GetElementTypeAhead() == ElementType.ByRef) { br = true; } } e = TypeElement.ReadType(rdr); }
public void Read(SignatureReader rdr) { while (rdr.IsCustomModifierAhead() || (byte)rdr.GetElementTypeAhead() == 0x45) //0x45=ELEMENT_TYPE_PINNED { LocalVarMod m = new LocalVarMod(); if (rdr.IsCustomModifierAhead()) { m.Modifiers = new CustomModifierCollection(); m.Modifiers.Read(rdr); } if ((byte)rdr.GetElementTypeAhead() == 0x45) { m.Pinned = true; } Items.Add(m); } }
public void Read(SignatureReader rdr) { mods = new CustomModifierCollection(); mods.Read(rdr); if (rdr.GetElementTypeAhead() == ElementType.ByRef) { br = true; } else { br = false; } t = TypeElement.ReadType(rdr); }
} //optional beginning, including public void Read(SignatureReader rdr, int c) { sen = -1; for (int i = 0; i < c; i++) { if ((byte)rdr.GetElementTypeAhead() == 0x41) { sen = i; rdr.ReadElementType(); } ParamElement p = new ParamElement(); p.Read(rdr); Items.Add(p); } }
public static TypeElement ReadType(SignatureReader rdr) { TypeElement ret; switch (rdr.GetElementTypeAhead()) { case ElementType.Void: case ElementType.TypedByRef: ret = new BaseType(); break; case ElementType.Boolean: case ElementType.Char: case ElementType.Int8: case ElementType.UInt8: case ElementType.Int16: case ElementType.UInt16: case ElementType.Int32: case ElementType.UInt32: case ElementType.Int64: case ElementType.UInt64: case ElementType.Single: case ElementType.Double: case ElementType.IntPtr: case ElementType.UIntPtr: case ElementType.Object: case ElementType.String: ret = new BaseType(); break; case ElementType.Array: ret = new ARRAY(); break; case ElementType.Class: ret = new CLASS(); break; case ElementType.FnPtr: ret = new FNPTR(); break; case ElementType.GenericInstance: ret = new GENERICINST(); break; case ElementType.MethodGenericVar: ret = new MVAR(); break; case ElementType.Pointer: ret = new PTR(); break; case ElementType.SzArray: ret = new SZARRAY(); break; case ElementType.ValueType: ret = new VALUETYPE(); break; case ElementType.GenericVar: ret = new VAR(); break; default: throw new InvalidOperationException(); } ret.Read(rdr); return(ret); }