Petite astuce rapide que je viens de découvrir et qui est peu documentée sur le net, la possibilité d’ajouter une variable dans la cache avec une dépendance sur plusieurs fichiers.

    Public Shared Function GetListOfFilesFromAPath(ByVal path As String) As List(Of String)
        Dim result As New List(Of String)
        Dim directory As New DirectoryInfo(path)
 
        If directory.Exists Then
            Dim obj As Object = HttpContext.Current.Cache("GetListOfFilesFromAPath" + path)
            If obj Is Nothing Then
                Dim dependencies As New AggregateCacheDependency
                For Each file As FileInfo In directory.GetFiles()
                    result.Add(file.FullName)
                    dependencies.Add(New CacheDependency(file.FullName))
                Next
                HttpContext.Current.Cache.Insert("GetListOfFilesFromAPath" + path, result, dependencies)
            Else
                result = CType(obj, List(Of String))
            End If
        End If
 
        Return result
    End Function

Plus d’information sur AggregateCacheDependency sur le site de la MSDN.

Be Sociable, Share!