public IDictionary <string, Type> GetFullTextSearchFields <TMetaData>() where TMetaData : IMetaDataExpression { if (_fullTextSearchFields.ContainsKey(typeof(TMetaData))) { return(_fullTextSearchFields[typeof(TMetaData)]); } var fields = FieldAttribute.GetFields <TMetaData>(true); _fullTextSearchFields.AddOrUpdate(typeof(TMetaData), fields, (type, types) => types); return(fields); }