public Fields( TType declaringType, IFieldFactory <TField, TConstant, TType> fieldFactory) { List <TField> fields = new List <TField>(); List <TConstant> constants = new List <TConstant>(); foreach (FieldInfo fieldDefinition in declaringType.Type.GetAllFields().Where(field => !field.IsDefined(typeof(CompilerGeneratedAttribute)))) { if (fieldDefinition.IsLiteral) { constants.Add(fieldFactory.CreateConstant(declaringType, fieldDefinition)); } else { fields.Add(fieldFactory.CreateField(declaringType, fieldDefinition)); } } FieldsWithReflection = fields; ConstantsWithReflection = constants; }
public Fields( TType declaringType, IFieldFactory <TField, TConstant, TType> fieldFactory) { List <TField> fields = new List <TField>(); List <TConstant> constants = new List <TConstant>(); foreach (FieldDefinition fieldDefinition in declaringType.TypeDefinition.Fields.Where(field => !field.IsDefined(declaringType.Assembly, typeof(CompilerGeneratedAttribute)))) { if (fieldDefinition.HasConstant) { constants.Add(fieldFactory.CreateConstant(declaringType, fieldDefinition)); } else { fields.Add(fieldFactory.CreateField(declaringType, fieldDefinition)); } } FieldsWithMonoCecil = fields; ConstantsWithMonoCecil = constants; }