public static IEnumerable <AbstractNode> GetChildNodesOfObject(Expression targetObject, DebugType shownType) { BindingFlags Flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Field | BindingFlags.GetProperty; if (shownType.BaseType != null) { yield return(new BaseClassNode(targetObject, shownType.BaseType)); } if (shownType.HasMembers(NonPublicInstanceMembersNode.Flags)) { yield return(new NonPublicInstanceMembersNode(targetObject, shownType)); } if (shownType.HasMembers(StaticMembersNode.Flags) || shownType.HasMembers(NonPublicStaticMembersNode.Flags)) { yield return(new StaticMembersNode(targetObject, shownType)); } DebugType iListType = shownType.GetInterface(typeof(IList).FullName); if (iListType != null) { yield return(new IListNode(targetObject, iListType)); } foreach (Expression childExpr in targetObject.AppendObjectMembers(shownType, Flags)) { yield return(ValueNode.Create(childExpr)); } }
IEnumerable <AbstractNode> GetChildNodes() { if (shownType.HasMembers(NonPublicStaticMembersNode.Flags)) { yield return(new NonPublicStaticMembersNode(targetObject, shownType)); } foreach (Expression childExpr in targetObject.AppendObjectMembers(shownType, Flags)) { yield return(ValueNode.Create(childExpr)); } }