Exemple #1
0
        private void BuildMemberTypeIndexInformation(MemberTypeIndexPair[] memberTypeIndexPairs,
                                                     IEnumerable propertyInfos, IEnumerable fieldInfos)
        {
            var enumerable = fieldInfos as object[] ?? fieldInfos.Cast <object>().ToArray();
            var infos      = propertyInfos as object[] ?? propertyInfos.Cast <object>().ToArray();

            for (var i = 0; i < Headers.Length; i++)
            {
                memberTypeIndexPairs[i].Index = -1;

                var j = 0;
                foreach (FieldInfo fieldInfo in enumerable)
                {
                    if (fieldInfo.Name == Headers[i].Name)
                    {
                        Headers[i].MemberTypes = MemberTypes.Field;

                        memberTypeIndexPairs[i] = new MemberTypeIndexPair
                        {
                            Index      = j,
                            MemberType = MemberTypes.Field
                        };
                        break;
                    }

                    j++;
                }

                if (memberTypeIndexPairs[i].Index != -1 && memberTypeIndexPairs[i].MemberType == MemberTypes.Field)
                {
                    continue;
                }

                j = 0;
                foreach (PropertyInfo propertyInfo in infos)
                {
                    if (propertyInfo.Name == Headers[i].Name)
                    {
                        Headers[i].MemberTypes = MemberTypes.Property;

                        memberTypeIndexPairs[i] = new MemberTypeIndexPair
                        {
                            Index      = j,
                            MemberType = MemberTypes.Property
                        };
                        break;
                    }

                    j++;
                }

                if (memberTypeIndexPairs[i].Index != -1 && memberTypeIndexPairs[i].MemberType == MemberTypes.Property)
                {
                    continue;
                }

                memberTypeIndexPairs[i].Index = -1;
            }
        }
Exemple #2
0
        private void GetReflectionInformation(Type typeOfElement, out MemberTypeIndexPair[] memberTypeIndexPairs, out IEnumerable <PropertyInfo> propertyInfos, out IEnumerable <FieldInfo> fieldInfos)
        {
            memberTypeIndexPairs = new MemberTypeIndexPair[Headers.Length];

            propertyInfos = typeOfElement.GetProperties();
            fieldInfos    = typeOfElement.GetFields();

            RemoveHeaderWhitespaceAndDetermineIfRequired();


            BuildMemberTypeIndexInformation(memberTypeIndexPairs, propertyInfos, fieldInfos);
        }