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); } }
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()); } }