/*-------------------- Constructors ---------------------------------*/ internal FieldRVA(FieldDef field, DataConstant data) { Contract.Requires(field != null); Contract.Requires(data != null); this.field = field; this.data = data; tabIx = MDTable.FieldRVA; }
/// <summary> /// Add a field to this class /// </summary> /// <param name="f">Descriptor for the field to be added</param> public void AddField(FieldDef f) { // FIXME Contract.Requires(fields != null); FieldDef field = (FieldDef)FindField(f.Name()); if (field != null) throw new DescriptorException("Field " + field.NameString()); f.SetParent(this); fields.Add(f); }
/// <summary> /// Add a field to this class /// </summary> /// <param name="name">field name</param> /// <param name="fType">field type</param> /// <returns>a descriptor for this new field</returns> public FieldDef AddField(string name, Type fType) { Contract.Requires(name != null); Contract.Requires(fType != null); Contract.Ensures(Contract.Result<FieldDef>() != null); // FIXME Contract.Requires(fields != null); FieldDef field = (FieldDef)FindField(name); if (field != null) throw new DescriptorException("Field " + field.NameString()); field = new FieldDef(name, fType, this); fields.Add(field); return field; }
/// <summary> /// Add a "global" field to this module /// </summary> /// <param name="fld">The field to be added</param> public void AddField(FieldDef fld) { defaultClass.AddField(fld); }
internal override sealed void Resolve(PEReader buff) { field = (FieldDef)buff.GetElement(MDTable.Field, fieldIx); field.SetOffset(offset); }
/*-------------------- Constructors ---------------------------------*/ internal FieldLayout(FieldDef field, uint offset) { this.field = field; this.offset = offset; tabIx = MDTable.FieldLayout; }
internal static void Read(PEReader buff, TableRow[] fields) { for (int i = 0; i < fields.Length; i++) fields[i] = new FieldDef(buff); }
internal override sealed void Resolve(PEReader buff) { field = (FieldDef)buff.GetElement(MDTable.Field, fieldIx); field.AddDataValue(buff.GetDataConstant(rva, field.GetFieldType())); }