/// <summary> /// Enumerates all workspaces in ArcMap. /// </summary> /// <param name="esriApplication">The Esri application istance.</param> /// <returns>Enumeration of workspaces.</returns> public static IEnumerable <IWorkspace> EnumerateAllWorkspaces(IApplication esriApplication) { HashSet <IWorkspace> duplicateFinder = new HashSet <IWorkspace>(); foreach (IDataset dataset in ArcmapUtils.EnumerateAllDatasets(esriApplication)) { IWorkspace workspace = dataset.Workspace; if ((workspace != null) && !duplicateFinder.Contains(workspace)) { duplicateFinder.Add(workspace); yield return(workspace); } } }