PostSharpAPI ReferencePost­Sharp.​Patterns.​CachingCaching­Profile
Open sandboxFocus

CachingProfile Class

Allows for centralized and run-time configuration of several instances of the CacheAttribute aspect.

Inheritance
CachingProfile
Namespace: PostSharp.Patterns.Caching
Assembly: PostSharp.Patterns.Caching.dll
Syntax
public sealed class CachingProfile : Object, ICacheItemConfiguration

Constructors

Name Description
CachingProfile(String)

Initializes a new CachingProfile.

Fields

Name Description
DefaultName

The name of the default profile.

Properties

Name Description
AbsoluteExpiration

Gets or sets the total duration during which the result of the current method is stored in cache. The absolute expiration time is counted from the moment the method is evaluated and cached.

AcquireLockTimeout

Gets or sets the maximum time that the caching aspect will wait for the LockManager to acquire a lock. To specify an infinite waiting time, set this property to TimeSpan.FromMilliseconds( -1 ). The default behavior is to wait infinitely.

AcquireLockTimeoutStrategy

Gets or sets the behavior in case that the caching aspect could not acquire a lock because of a timeout. The default behavior is to throw a TimeoutException. You can implement your own strategy by implementing the IAcquireLockTimeoutStrategy interface. If the OnTimeout(String) does not return any exception, the cached method will be evaluated (even without a lock).

AutoReload

Determines whether the method calls are automatically reloaded (by re-evaluating the target method with the same arguments) when the cache item is removed from the cache.

IsEnabled

Determines whether caching is enabled for the current profile.

LockManager

Gets or sets the lock manager used to synchronize the execution of methods that are cached with the current profile. The default lock manager is NullLockManager, which allows for concurrent execution of all methods. An alternative implementation is LocalLockManager, which prevents concurrent execution of the same method with the same parameters, in the current process (or AppDomain).

Name

Gets the profile name (a case-insensitive string).

Priority

Gets or sets the priority of the cached methods.

SlidingExpiration

Gets or sets the duration during which the result of the current method is stored in cache after it has been added to or accessed from the cache. The expiration is extended every time the value is accessed from the cache.

Explicit Interface Implementations

Name Description
ICacheItemConfiguration.AbsoluteExpiration

Gets or sets the total duration during which the result of the cached methods is stored in cache. The absolute expiration time is counted from the moment the method is evaluated and cached.

ICacheItemConfiguration.AutoReload

Determines whether the method calls are automatically reloaded (by re-evaluating the target method with the same arguments) when the cache item is removed from the cache.

ICacheItemConfiguration.IgnoreThisParameter

Determines whether the this instance should be a part of the cache key. The default value of this property is false, which means that by default the this instance is a part of the cache key.

ICacheItemConfiguration.IsEnabled

Determines whether caching is enabled.

ICacheItemConfiguration.ProfileName

Gets or sets the name of the CachingProfile that contains the configuration of the cached methods.

ICacheItemConfiguration.SlidingExpiration

Gets or sets the duration during which the result of the cached methods is stored in cache after it has been added to or accessed from the cache. The expiration is extended every time the value is accessed from the cache.