public Group AddGetgroup(FilterMask m) { Group g; if (!groups.TryGetValue(m, out g)) { g = new Group(); g.mask = m; groups.Add(m, g); listGroups.Add(g); lengthGroups++; } return(g); }
public void Setup(object b) { var type = b.GetType(); var objectFields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); var length = objectFields.Length; FilterMask mask; var hasAtr = false; for (var i = 0; i < length; i++) { var myFieldInfo = objectFields[i]; var groupByAttribute = Attribute.GetCustomAttribute(objectFields[i], typeof(GroupByAttribute)) as GroupByAttribute; mask = new FilterMask(); if (groupByAttribute != null) { hasAtr = true; mask.groupFilter = groupByAttribute.filter; } var groupExcludeAttribute = Attribute.GetCustomAttribute(objectFields[i], typeof(GroupExcludeAttribute)) as GroupExcludeAttribute; if (groupExcludeAttribute != null) { hasAtr = true; mask.groupFilterExclude = groupExcludeAttribute.filter; } if (hasAtr) { Group g = ProcessingEntities.Default.AddGetgroup(mask); myFieldInfo.SetValue(b, g); } hasAtr = false; } }