Exemplo n.º 1
0
        private void LoadClassTypeMembers(BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Instance)
        {
            // Get All Fields
            List <FieldInfo> listFields = this.Type.GetFields(bindingFlags).Distinct().ToList();

            // Loop Fields
            foreach (FieldInfo field in listFields)
            {
                // Create New Member
                MemberTypeInformation member = new MemberTypeInformation(field, bindingFlags);

                // Add Member To List
                this.Members.Add(member);
            }

            // Get All Properties
            List <PropertyInfo> listProperties = this.Type.GetProperties(bindingFlags).ToList();

            // Loop Properties
            foreach (PropertyInfo property in listProperties)
            {
                // Create New Member
                MemberTypeInformation member = new MemberTypeInformation(property, bindingFlags);

                // Add Member To List
                this.Members.Add(member);
            }
        }
Exemplo n.º 2
0
        internal void LoadChildMemberData(object obj, DataRow dr, BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Instance)
        {
            try
            {
                #region Get Class Information

                // Get Cached Class Information Collection
                ClassTypeInformation classInfo = CacheRepository.LoadTypeInformation(obj.GetType(), bindingFlags);

                // Validation
                if (classInfo == null || classInfo.DataTable == null)
                {
                    return;
                }

                #endregion

                #region Get Class Common Primary Keys

                // Create New List Of Common Primary Keys
                List <MemberTypeInformation> listCommonPrimaryKeys = new List <MemberTypeInformation>();

                // Loop Primary Key Members
                foreach (MemberTypeInformation memberPK in this.PrimaryKeyMembers)
                {
                    MemberTypeInformation commonPrimaryKey = classInfo.PrimaryKeyMembers.Where(pk => pk.ColumnName == memberPK.ColumnName).FirstOrDefault();

                    // Validation
                    if (commonPrimaryKey != null)
                    {
                        // Add Primary Key To List
                        listCommonPrimaryKeys.Add(commonPrimaryKey);
                    }
                }

                #endregion

                #region Load Collection And Instance Members

                // Load Object Instance Properties
                this.LoadInstanceList(obj, listCommonPrimaryKeys, bindingFlags);

                // Load Instance Collection Properties
                this.LoadCollectionList(obj, dr, listCommonPrimaryKeys, bindingFlags);

                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine("ERROR IN TYPE " + this.Type + " - ROW INDEX: " + this.DataTable.Rows.IndexOf(dr) + " Detail: " + ex.ToString());
            }
        }