Beispiel #1
0
        /// <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);
                }
            }
        }