Index: src/Common/SharpMap.Api/Layers/LayerExtensions.cs =================================================================== diff -u -r5fc71a385897af92ccb092f2f969b5709afab85a -r341078d82fcf9051b233068ad0172940aa71cff5 --- src/Common/SharpMap.Api/Layers/LayerExtensions.cs (.../LayerExtensions.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) +++ src/Common/SharpMap.Api/Layers/LayerExtensions.cs (.../LayerExtensions.cs) (revision 341078d82fcf9051b233068ad0172940aa71cff5) @@ -5,23 +5,17 @@ { public static class LayerExtensions { - public static IEnumerable GetLayersRecursive(this ILayer layer) + public static void DisposeLayersRecursive(this ILayer layer, bool disposeDataSource = true) { - yield return layer; + var disposableLayers = GetLayersRecursive(layer).ToList(); - var groupLayer = layer as IGroupLayer; - if (groupLayer == null) + foreach (var disposableLayer in disposableLayers) { - yield break; + disposableLayer.Dispose(disposeDataSource); } - - foreach (var subLayer in groupLayer.Layers.SelectMany(GetLayersRecursive)) - { - yield return subLayer; - } } - public static IEnumerable GetLayersRecursive(this ILayer layer) + private static IEnumerable GetLayersRecursive(this ILayer layer) { if (layer is T) { @@ -39,15 +33,5 @@ yield return typedLayer; } } - - public static void DisposeLayersRecursive(this ILayer layer, bool disposeDataSource = true) - { - var disposableLayers = GetLayersRecursive(layer).ToList(); - - foreach (var disposableLayer in disposableLayers) - { - disposableLayer.Dispose(disposeDataSource); - } - } } } \ No newline at end of file