示例#1
0
        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;
        }
示例#2
0
        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;
        }