public List<Tuple<object, MemberInfo>> ScanObject(object root) { var visitedMembers = new HashSet<object>(); return ScanObject(root, visitedMembers); }