IEnumerable <IMemberDef> CalculateDefsToRemove() { var defaultProp = FindDefaultProperty(); if (defaultProp != null) { foreach (var d in DotNetUtils.GetMethodsAndSelf(defaultProp)) { yield return(d); } foreach (var d in DotNetUtils.GetDefs(defaultProp)) { yield return(d); } } foreach (var p in type.Properties) { if (p.CustomAttributes.IsDefined("System.Configuration.DefaultSettingValueAttribute")) { foreach (var d in DotNetUtils.GetMethodsAndSelf(p)) { yield return(d); } } } }
void InitializeIsEmpty() { var allDefs = new HashSet <object>(); foreach (var m in type.Methods) { allDefs.Add(m); } foreach (var f in type.Fields) { allDefs.Add(f); } foreach (var p in type.Properties) { allDefs.Add(p); } foreach (var e in type.Events) { allDefs.Add(e); } foreach (var t in type.NestedTypes) { allDefs.Add(t); } foreach (var d in GetDefsToRemove()) { allDefs.Remove(d); if (d is PropertyDef) { foreach (var def in DotNetUtils.GetMethodsAndSelf((PropertyDef)d)) { allDefs.Remove(def); } } } allDefs.Remove(type.FindStaticConstructor()); allDefs.Remove(type.FindDefaultConstructor()); isEmpty = allDefs.Count == 0; }