private List<object> GetOrderedExports(IEnumerable<object> serializedObjects) { List<object> exportList = new List<object>(); HashSet<object> visited = new HashSet<object>(ObjectReferenceEqualityComparer<object>.Default); foreach (var obj in serializedObjects) GetOrderedExports(obj, exportList, visited); return exportList; }