NET Caching Library Help
Add<T>(String,T,CacheItemPolicy,String) Method
Example 




KellermanSoftware.NetCachingLibrary Namespace > SmartCache Class > Add Method : Add<T>(String,T,CacheItemPolicy,String) Method
A unique identifier for the cache entry.
The object to insert.
An object that contains eviction details for the cache entry. This object provides more options for eviction than a simple absolute expiration.
Optional. A named region in the cache to which the cache entry can be added. The default value for the optional parameter is Default
Inserts a cache entry into the cache, specifying information about how the entry will be evicted. The expiration policy will be the same for both the primary and secondary cache providers.
Syntax
'Declaration
 
Public Overloads Function Add(Of T)( _
   ByVal key As System.String, _
   ByVal value As T, _
   ByVal policy As System.Runtime.Caching.CacheItemPolicy, _
   Optional ByVal regionName As System.String _
) As System.Boolean
'Usage
 
Dim instance As SmartCache
Dim key As System.String
Dim value As T
Dim policy As System.Runtime.Caching.CacheItemPolicy
Dim regionName As System.String
Dim value As System.Boolean
 
value = instance.Add(Of T)(key, value, policy, regionName)
public System.bool Add<T>( 
   System.string key,
   T value,
   System.Runtime.Caching.CacheItemPolicy policy,
   System.string regionName
)
public: System.bool Add<T>( 
   System.string* key,
   T* value,
   System.Runtime.Caching.CacheItemPolicy* policy,
   System.string* regionName
) 
public:
System.bool Addgeneric<typename T>
( 
   System.String^ key,
   T^ value,
   System.Runtime.Caching.CacheItemPolicy^ policy,
   System.String^ regionName
) 

Parameters

key
A unique identifier for the cache entry.
value
The object to insert.
policy
An object that contains eviction details for the cache entry. This object provides more options for eviction than a simple absolute expiration.
regionName
Optional. A named region in the cache to which the cache entry can be added. The default value for the optional parameter is Default

Type Parameters

T

Return Value

true if the insertion try succeeds, or false if there is an already an entry in the cache with the same key as key.
Example
//Create a Primary Memory Cache with a backing File Cache
string directory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "KellermanSoftware", "NetCachingLibrary", "Tests");
SmartConfig config = new SmartConfig(new MemoryCacheProvider(), new FileCacheProvider(directory));
            
//Specify UserName and LicenseKey for Licensed Mode
//config.UserName = "my user name";
//config.LicenseKey = "my license key";
            
//Instantiate the cache
SmartCache cache = new SmartCache(config);
            
//Build parameters for the report
int month = DateTime.Now.Month;
int year = DateTime.Now.Year;
            
//Get the cache key based on the report parameters
string cacheKey = cache.BuildCacheKey("MonthlySalesReport", month, year);
            
//Attempt to load the report from the cache
List<ReportDetail> report = cache.Get<List<ReportDetail>>(cacheKey);
            
//Not found in the cache
if (report == null)
{
	//Load the report from the database
	report = ReportLogic.MonthlySalesReport(month, year);
            
	//Expire in 20 minutes
	CacheItemPolicy policy = new CacheItemPolicy()
	{
		AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(20),
		SlidingExpiration = SmartCache.NoSlidingExpiration
	};
            
	//Save to the cache using the same expiration policy for the memory cache and file cache
	bool result = cache.Add<List<ReportDetail>>(cacheKey, report, policy, "Default");
            
	//This will be true since it was added to the cache
	Console.WriteLine(result);
}
'Create a Primary Memory Cache with a backing File Cache
Dim directory As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "KellermanSoftware", "NetCachingLibrary", "Tests")
Dim config As New SmartConfig(New MemoryCacheProvider(), New FileCacheProvider(directory))
            
'Specify UserName and LicenseKey for Licensed Mode
'config.UserName = "my user name";
'config.LicenseKey = "my license key";
            
'Instantiate the cache
Dim cache As New SmartCache(config)
            
'Build parameters for the report
Dim month As Integer = Date.Now.Month
Dim year As Integer = Date.Now.Year
            
'Get the cache key based on the report parameters
Dim cacheKey As String = cache.BuildCacheKey("MonthlySalesReport", month, year)
            
'Attempt to load the report from the cache
Dim report As List(Of ReportDetail) = cache.Get(Of List(Of ReportDetail))(cacheKey)
            
'Not found in the cache
If report Is Nothing Then
	'Load the report from the database
	report = ReportLogic.MonthlySalesReport(month, year)
            
	'Expire in 20 minutes
	Dim policy As New CacheItemPolicy() With {
		.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(20),
		.SlidingExpiration = SmartCache.NoSlidingExpiration
	}
            
	'Save to the cache using the same expiration policy for the memory cache and file cache
	Dim result As Boolean = cache.Add(Of List(Of ReportDetail))(cacheKey, report, policy, "Default")
            
	'This will be true since it was added to the cache
	Console.WriteLine(result)
End If
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

SmartCache Class
SmartCache Members
Overload List