关于DNN的缓存信息的管理机制
在DotNetNuke.Services.Cache.CachingProvider类中 DNN声明了很多虚函数,完成Cach管理所需的接口声明,其代码实现是通过配置文件来实现的。 ' methods to return functionality support indicators Function Add(ByVal Key As String, ByVal Value As Object, ByVal Dependencies As CacheDependency, ByVal AbsoluteExpiration As DateTime, ByVal SlidingExpiration As TimeSpan, ByVal Priority As CacheItemPriority, ByVal OnRemoveCallback As CacheItemRemovedCallback) As Object Function GetEnumerator() As IDictionaryEnumerator Function GetItem(ByVal CacheKey As String) As Object Function GetPersistentCacheItem(ByVal CacheKey As String, ByVal objType As Type) As Object Sub Insert(ByVal CacheKey As String, ByVal objObject As Object, ByVal PersistAppRestart As Boolean) Sub Insert(ByVal CacheKey As String, ByVal objObject As Object, ByVal objDependency As CacheDependency, ByVal PersistAppRestart As Boolean) Sub Insert(ByVal CacheKey As String, ByVal objObject As Object, ByVal objDependency As CacheDependency, ByVal AbsoluteExpiration As Date, ByVal SlidingExpiration As System.TimeSpan, ByVal PersistAppRestart As Boolean) Sub Insert(ByVal CacheKey As String, ByVal objObject As Object, ByVal objDependency As CacheDependency, ByVal AbsoluteExpiration As Date, ByVal SlidingExpiration As System.TimeSpan, ByVal Priority As CacheItemPriority, ByVal OnRemoveCallback As CacheItemRemovedCallback, ByVal PersistAppRestart As Boolean) Sub Remove(ByVal CacheKey As String) Sub RemovePersistentCacheItem(ByVal CacheKey As String) Function PurgeCache() As String
配置文件对应内容为: <caching defaultProvider="BroadcastPollingCachingProvider"> <providers> <clear /> <add name="FileBasedCachingProvider" type="DotNetNuke.Services.Cache.FileBasedCachingProvider.FBCachingProvider, DotNetNuke.Caching.FileBasedCachingProvider" providerPath="~\Providers\CachingProviders\FileBasedCachingProvider\" /> <add name="BroadcastPollingCachingProvider" type="DotNetNuke.Services.Cache.BroadcastPollingCachingProvider.BPCachingProvider, DotNetNuke.Caching.BroadcastPollingCachingProvider" providerPath="~\Providers\CachingProviders\BroadcastPollingCachingProvider\" /> </providers> </caching> 由此可见其Cache内容管理有两种方法,一种文文件读取方式,一种为数据库读取方式。 |