internal override void Resolve(PEReader buff) { if (type == null) { buff.currentClassScope = parent; type = buff.GetFieldType(sigIx); buff.currentClassScope = null; } }
internal static void GetFieldRefs(PEReader buff, uint num, ClassRef parent) { for (int i = 0; i < num; i++) { uint flags = buff.ReadUInt16(); string name = buff.GetString(); uint sigIx = buff.GetBlobIx(); if ((flags & (uint)FieldAttr.Public) == (uint)FieldAttr.Public) { if (parent.GetField(name) == null) { //Console.WriteLine(parent.NameString()); buff.currentClassScope = parent; FieldRef fRef = new FieldRef(parent, name, buff.GetFieldType(sigIx)); buff.currentClassScope = null; parent.AddToFieldList(fRef); } } } }
internal void Resolve(PEReader buff, uint fIx) { //if ((flags & HasFieldMarshal) != 0) // marshalType = FieldMarshal.FindMarshalType(buff,this, // buff.MakeCodedIndex(CIx.HasFieldMarshal,MDTable.Field,fIx)); //if ((flags & HasFieldRVA) != 0) { //initVal = FieldRVA.FindValue(buff, this, fIx); //} //if ((flags & HasDefault) != 0) // constVal = ConstantElem.FindConst(buff,this, // buff.MakeCodedIndex(CIx.HasConstant,MDTable.Field,fIx)); //long offs = FieldLayout.FindLayout(buff,this,fIx); //if (offs > -1){ // hasOffset = true; // offset = (uint)offs; //} buff.currentClassScope = parent; type = buff.GetFieldType(sigIx); buff.currentClassScope = null; }
internal override void Resolve(PEReader buff) { Type sigType = buff.GetFieldType(sigIx); buff.ReplaceSig(this, sigType); }