void InitFields() { if (tokenToField != null) { return; } tokenToField = new Dictionary <int, MField>(typeDef.Fields.Count); fieldRefToField = new FieldDefDict <MField>(); var tmpTokenToField = new Dictionary <int, FieldInfo>(); var flags = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; foreach (var f in type.GetFields(flags)) { tmpTokenToField[f.MetadataToken] = f; } foreach (var f in typeDef.Fields) { var token = (int)f.MDToken.Raw; var field = new MField(tmpTokenToField[token], f); tokenToField[token] = field; fieldRefToField.Add(field.fieldDef, field); } }
void InitFields() { if (tokenToField != null) return; tokenToField = new Dictionary<int, MField>(typeDef.Fields.Count); fieldRefToField = new FieldDefDict<MField>(); var tmpTokenToField = new Dictionary<int, FieldInfo>(); var flags = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; foreach (var f in type.GetFields(flags)) tmpTokenToField[f.MetadataToken] = f; foreach (var f in typeDef.Fields) { var token = (int)f.MDToken.Raw; var field = new MField(tmpTokenToField[token], f); tokenToField[token] = field; fieldRefToField.Add(field.fieldDef, field); } }
public void Add(MFieldDef f) => fields.Add(f);