Index: Core/Components/src/Core.Components.DotSpatial/Converter/MapFeatureLayerFactory.cs =================================================================== diff -u -rc7608335f86c59fff48f77d5bc83b2692ef18fef -r903fe85a602e798d7ddda2039b11a4c670466bb0 --- Core/Components/src/Core.Components.DotSpatial/Converter/MapFeatureLayerFactory.cs (.../MapFeatureLayerFactory.cs) (revision c7608335f86c59fff48f77d5bc83b2692ef18fef) +++ Core/Components/src/Core.Components.DotSpatial/Converter/MapFeatureLayerFactory.cs (.../MapFeatureLayerFactory.cs) (revision 903fe85a602e798d7ddda2039b11a4c670466bb0) @@ -32,6 +32,13 @@ /// public static class MapFeatureLayerFactory { + private static readonly Collection converters = new Collection + { + new MapPointDataConverter(), + new MapLineDataConverter(), + new MapPolygonDataConverter() + }; + /// /// Creates a from the given . /// @@ -40,13 +47,6 @@ /// Thrown when the given type is not supported. public static IMapFeatureLayer Create(FeatureBasedMapData data) { - var converters = new Collection - { - new MapPointDataConverter(), - new MapLineDataConverter(), - new MapPolygonDataConverter() - }; - foreach (IFeatureBasedMapDataConverter converter in converters.Where(c => c.CanConvertMapData(data))) { return converter.Convert(data); @@ -63,7 +63,7 @@ /// Thrown when the given type is not supported. public static void ConvertLayerFeatures(FeatureBasedMapData data, IMapFeatureLayer layer) { - var converter = GetFeatureBasedMapDataConverter(data); + var converter = converters.FirstOrDefault(c => c.CanConvertMapData(data)); if (converter != null) { converter.ConvertLayerFeatures(data, layer); @@ -82,7 +82,7 @@ /// The layer to convert the general properties to. public static void ConvertLayerProperties(FeatureBasedMapData data, IMapFeatureLayer layer) { - var converter = GetFeatureBasedMapDataConverter(data); + var converter = converters.FirstOrDefault(c => c.CanConvertMapData(data)); if (converter != null) { converter.ConvertLayerProperties(data, layer); @@ -92,15 +92,5 @@ throw new NotSupportedException(string.Format("FeatureBasedMapData of type {0} is not supported.", data.GetType().Name)); } } - - private static IFeatureBasedMapDataConverter GetFeatureBasedMapDataConverter(FeatureBasedMapData data) - { - return new Collection - { - new MapPointDataConverter(), - new MapLineDataConverter(), - new MapPolygonDataConverter() - }.FirstOrDefault(c => c.CanConvertMapData(data)); - } } } \ No newline at end of file