DynamicWhere.ex
DynamicWhere.exv2.1.0·docs

CacheMemoryType

CacheMemoryType names the three internal cache stores DynamicWhere.ex maintains for reflection metadata. It's the handle you pass to CacheExpose.ClearCache(...) or CacheExpose.IsCacheFull(...) to operate on one store at a time. It lives in DynamicWhere.ex.Optimization.Cache.Config.

Values

ValueDescription
TypePropertiesCached property metadata per Type.
PropertyPathCached validated & normalized property paths.
CollectionElementTypeCached collection element-type lookups.

The three cache stores

Each enum value maps one-to-one to an internal ConcurrentDictionary store managed by CacheDatabase. The CacheEvictionStrategy you configure applies to each store independently.

StoreKeyValuePurpose
TypePropertiesTypeDictionary<string, PropertyInfo>All public instance properties per type.
PropertyPath(Type, string)stringValidated & normalized property paths.
CollectionElementTypeTypeType?Element type for collection types.
Note
All three stores share the same MaxCacheSize and EvictionStrategy from CacheOptions. To tune a store independently, you would need to manage it manually via CacheExpose — there is no per-store configuration.

C# usage

Clear one store:

using DynamicWhere.ex.Optimization.Cache.Source;
using DynamicWhere.ex.Optimization.Cache.Config;

CacheExpose.ClearCache(CacheMemoryType.PropertyPath);

Check whether a specific store is full:

bool full = CacheExpose.IsCacheFull(CacheMemoryType.TypeProperties);

Clear all stores at once (does not require the enum):

CacheExpose.ClearAllCaches();

Monitoring

Per-store statistics surface through the reporting APIs — every report enumerates all three values of this enum so you can see hit/miss rates, memory footprint, and eviction counts independently.

var stats = CacheExpose.GetCacheStatistics();
var memory = CacheExpose.GetMemoryUsage();
string report = CacheExpose.GeneratePerformanceReport();