* Improved CacheAttribute initialization
* Fixed CacheManager registration of cache with any name ("*" with no-prefix) not working
* Removed unused field from aspect classes.
* Added DoNotIncludeInCacheKeyAttribute for marking specific parameters so that their values will not be a part of the key,
Example of usages:
a. Do not use a dbContext as part of a cache key.
b. Cache using object ID, not object value.
* Change policy for InMemoryCache to InMemoryPolicy enabling AbsoluteExpiration, ExpirationFromAdd, SlidingExpiration
* Added MongoDb based distributed cache with the above policy options
* Moved CacheKey generator from AopCaching to Core
* Added option to get auto-generated cache key (using CacheKey.GetKey()) to enable single item clear when using AopCaching
* Fixed NuGet package of MongoDbCaching - package was empty
* MongoDbCache - fixed race condition on initial get or add caused by using Add() instead of AddOrUpdate()
* MongoDbCache - added support for null values
* SystemRuntime.ObjectCache (InMemoryCache's base) - added support for null values
* Test initialization fix for AopCaching's tests
* RedisCache - added
* MongoDbCache - NuGet dependencies update
* MongoDbCache - small change for sliding expiration - removed unnecessary updates
* Core - added LayeredCache
* MongoDbCache - small code cleanup
* RedisCache - improved sliding expiration implementation - use GetOrSet() instead of Set() to clear previous expiration time
* WebApiExtended - added with basic cache controller
* Core - added CacheControllerUtil for enabling simple register, clear, refresh functionality
* Revamped WebApiExteneded to use CacheControllerUtil and name change
* Fixed route for cache controllers
* Check if parameter is null in GetCache(name)
* Fixed lifetime of cache registrations via CacheControllerUtil
* Added RegisterAllCaches functionality
* Bug fix for LambdaHelper: Add support for fields/properties as parameters in key generation expression
* Added built in cache notifications & synchronization
* Changed RedisCache to use StackExchange
* Implementation of notifier using Redis
* Revamped configuration for connection strings & notifications / synchronization
* Fixed unique key issue with AOP on generic methods or classes
* Fixed synchronizer/notifier + added test that spawns a test process (make sure Firewall/enSilo doesn't block it when running test)
* In order to enable clearing specific key when using the aspect CacheListAttribute,
Fixed CacheKey class key generation for methods with array/list parameters
- see test TestKeyGeneration_CacheList
* Added Converter options to RedisCache: json, bson, deflate, gzip
* Integration between WebAPI controller and Notifier to enable out of the box pub-sub
* Fix for RedisCache debug logs
* Added support for adding DoNotIncludeInCacheKeyAttribute to properties.
For this to work, the class DoNotIncludeInCacheKeyAttribute was moved from AopCaching to Core.Attributes,
which is a breaking change for clients of AopCaching using DoNotIncludeInCacheKeyAttribute
* Changed RedisConverterDeflate and RedisConverterGZip to compress JSON instead of BSON
* Updated Newtonsoft.Json (Json.net) from v6 to v11
* All other packages have not been changed
* Added async support for ICache and all implementations
* Fixed performance issue in CacheKey serialization
* Fixed deserialization issue when using RedisCache and AOP with various primitive types e.g. Int32
* Fixed connection issue when using RedisCache with a DNS
* Move the the logic of AOP safe casting to runtime (instead of compile time) to avoid a breaking change
* Fix DoNotIncludeInCacheKeyAttribute not effecting parameters
* Fix DoNotIncludeInCacheKeyAttribute in CacheListAttribute not working
* Update RedisCaching to StackExchange.Redis v2
* Change minimum .NET Framework version from 4.5 to 4.6.1 in all projects