Пример #1
0
        /// <summary>
        /// Queries for specific fields in a class
        /// </summary>
        /// <param name="query">Query string</param>
        /// <remarks>
        /// The field query must contain at least the field type and name to query for. Access modifier
        /// are optional
        /// Example:
        /// public * *
        /// protectd * *
        /// static readonly protected * *
        /// string m_*
        /// * my* // Get all fields which field name begins with my
        /// </remarks>
        public FieldQuery(string query) : base(query)
        {
            Parser = FieldQueryParser;

            var match = Parser.Match(query);

            if (!match.Success)
            {
                throw new ArgumentException(
                          String.Format("The field query string {0} was not a valid query.", query));
            }

            myExcludeCompilerGeneratedFields = true;
            SetModifierFilter(match);
            FieldTypeFilter = GenericTypeMapper.ConvertClrTypeNames(Value(match, "fieldType"));

            if (!FieldTypeFilter.StartsWith("*"))
            {
                FieldTypeFilter = "*" + FieldTypeFilter;
            }

            if (FieldTypeFilter == "*")
            {
                FieldTypeFilter = null;
            }

            NameFilter = Value(match, "fieldName");
        }
Пример #2
0
        public static Field Field(this IMembers members, Type fieldType, string fieldName)
        {
            var typed = new FieldTypeFilter(members.Fields(), fieldType);
            var named = new MemberNameFilter <Field, FieldInfo>(typed, fieldName);

            return(named.Single());
        }
Пример #3
0
            public void ReturnsFieldWithGivenType()
            {
                Assert.Same(selected, members.Field(fieldType));
                FieldTypeFilter filter = VerifyFilter(selection, fieldType);

                Assert.Same(fields, filter.Source);
            }
Пример #4
0
            public void ReturnsFieldWithGivenType()
            {
                Assert.Same(selected, testType.Field(fieldType));

                FieldTypeFilter typed = VerifyFilter(selection, fieldType);

                VerifyStaticFields(typed.Source, testType);
            }
Пример #5
0
            public void ReturnsFieldWithGivenType()
            {
                Assert.Same(selected, instance.Field(fieldType));

                FieldTypeFilter named = VerifyFilter(selection, fieldType);

                VerifyInstanceFields(named.Source, instance);
            }
Пример #6
0
            public void ReturnsFieldWithGivenTypeAndName()
            {
                Assert.Same(selected, members.Field(fieldType, fieldName));
                MemberNameFilter <Field, FieldInfo> nameFilter = VerifyFilter(selection, fieldName);
                FieldTypeFilter typeFilter = VerifyFilter(nameFilter.Source, fieldType);

                Assert.Same(fields, typeFilter.Source);
            }
Пример #7
0
            public void ReturnsGenericFieldOfGivenType()
            {
                Field <FieldValue> generic = testType.Field <FieldValue>();

                VerifyGenericField(selected, generic);
                FieldTypeFilter typed = VerifyFilter(selection, typeof(FieldValue));

                VerifyStaticFields(typed.Source, testType);
            }
Пример #8
0
            public void ReturnsFieldWithGivenTypeAndName()
            {
                Assert.Same(selected, testType.Field(fieldType, fieldName));

                MemberNameFilter <Field, FieldInfo> named = VerifyFilter(selection, fieldName);
                FieldTypeFilter typed = VerifyFilter(named.Source, fieldType);

                VerifyStaticFields(typed.Source, testType);
            }
Пример #9
0
            public void ReturnsGenericFieldWithGivenType()
            {
                Field <FieldValue> generic = members.Field <FieldValue>();

                VerifyGenericField(selected, generic);
                FieldTypeFilter typeFilter = VerifyFilter(selection, typeof(FieldValue));

                Assert.Same(fields, typeFilter.Source);
            }
Пример #10
0
            public void ReturnsGenericFieldWithGivenTypeAndName()
            {
                Field <FieldValue> generic = testType.Field <FieldValue>(fieldName);

                VerifyGenericField(selected, generic);
                MemberNameFilter <Field, FieldInfo> named = VerifyFilter(selection, fieldName);
                FieldTypeFilter typed = VerifyFilter(named.Source, typeof(FieldValue));

                VerifyStaticFields(typed.Source, testType);
            }
Пример #11
0
            public void ReturnsGenericFieldWithGivenTypeAndName()
            {
                Field <FieldValue> generic = members.Field <FieldValue>(fieldName);

                VerifyGenericField(selected, generic);
                MemberNameFilter <Field, FieldInfo> nameFilter = VerifyFilter(selection, fieldName);
                FieldTypeFilter typeFilter = VerifyFilter(nameFilter.Source, fieldType);

                Assert.Same(fields, typeFilter.Source);
            }