diff --git a/source/Lucene.Net.Linq/Mapping/ReflectionDocumentMapper.cs b/source/Lucene.Net.Linq/Mapping/ReflectionDocumentMapper.cs index 817ae0235..df84701ee 100644 --- a/source/Lucene.Net.Linq/Mapping/ReflectionDocumentMapper.cs +++ b/source/Lucene.Net.Linq/Mapping/ReflectionDocumentMapper.cs @@ -20,6 +20,8 @@ namespace Lucene.Net.Linq.Mapping /// public class ReflectionDocumentMapper : DocumentMapperBase { + protected static PropertyInfo[] properties = null; + /// /// Constructs an instance that will create an /// using metadata on public properties on the type . @@ -44,11 +46,12 @@ public ReflectionDocumentMapper(Version version, Analyzer externalAnalyzer) private ReflectionDocumentMapper(Version version, Analyzer externalAnalyzer, Type type) : base(version, externalAnalyzer) { - var props = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); + if (properties == null) + properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); - BuildFieldMap(props); + BuildFieldMap(properties); - BuildKeyFieldMap(type, props); + BuildKeyFieldMap(type, properties); } private void BuildFieldMap(IEnumerable props) @@ -85,4 +88,4 @@ private void BuildKeyFieldMap(Type type, IEnumerable props) } } } -} \ No newline at end of file +}