Link Search Menu Expand Document

PropertyMappedNameCache


A cacher class for the System.Reflection.PropertyInfo. Underneath, it uses the PropertyMapper class to extract the results and caching it for future use.

You should rely on this class rather using the nameof(Class.Property) of C# when working against the property name.

Methods

Below are the methods available from this class.

  • Flush - allows you to flush the caches.
  • Get - returns the mapped name of the property.

Usability

You can simply call the Get() method of this class by passing the instance of System.Reflection.PropertyInfo.

var properties = PropertyCache.Get<Person>();
properties
    .AsList()
    .ForEach(p =>
    {
        var mappedName = PropertyMappedNameCache.Get(p.PropertyInfo);
        // Use the 'mappedName' here
    })

Or via expression.

var mappedName = PropertyCache.Get<Person>(e => e.FirstName);
// Use the 'mappedName' here

The extraction is first checking the presence of the Map attribute and extract the name-mapping from there, then checks the implicit-mapping, otherwise, it will use the PropertyInfo.Name of the System.Reflection.