Comparteix a través de


CacheDependency Constructores

Definición

Inicializa una nueva instancia de la clase CacheDependency.

Sobrecargas

CacheDependency()

Inicializa una nueva instancia de la clase CacheDependency.

CacheDependency(String)

Inicializa una nueva instancia de la clase CacheDependency que supervisa un archivo o directorio en lo que se refiere a los cambios.

CacheDependency(String[])

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios).

CacheDependency(String, DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa un archivo o directorio en lo que se refiere a los cambios.

CacheDependency(String[], DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios) y especifica la hora a la que comienza la supervisión de cambios.

CacheDependency(String[], String[])

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas.

CacheDependency(String[], String[], DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas.

CacheDependency(String[], String[], CacheDependency)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas. También pasa a convertirse en dependiente en una instancia aparte de la clase CacheDependency.

CacheDependency(String[], String[], CacheDependency, DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas. También pasa a convertirse en dependiente en otra instancia de la clase CacheDependency y a la hora a la que empieza a realizarse la supervisión de los cambios.

CacheDependency()

Inicializa una nueva instancia de la clase CacheDependency.

protected:
 CacheDependency();
protected CacheDependency ();
Protected Sub New ()

Ejemplos

El ejemplo de código siguiente es una clase que implementa esta versión del CacheDependency constructor, ya que se requieren todas las clases que derivan de CacheDependency .

' Declare the class.
Public Class CustomCacheDependency 
   Inherits CacheDependency

     ' Constructor with no arguments 
     ' provided by CacheDependency class.
     Public Sub New()
     End Sub
   
     ' Declare a Boolean field named disposedValue.
     ' This will be used by Disposed property.
     Private disposedValue As Boolean                
     
     ' Create accessors for the Disposed property.
     Public Property Disposed As Boolean
       Get
           Return disposedValue
       End Get
       Set (ByVal value As Boolean)
           disposedValue = value
       End Set
     End Property
     
     ' Create a public method that sets the latest
     ' changed time of the CustomCacheDependency
     ' and notifies the underlying CacheDependency that the 
     ' dependency has changed, even though the HasChanged
     ' property is false.
     Public Sub ResetDependency()
        If Me.HasChanged = False              
           SetUtcLastModified(DateTime.MinValue)
           NotifyDependencyChanged(Me, EventArgs.Empty)
        End If
     End Sub
     
     ' Overrides the DependencyDispose method to set the
     ' Disposed proerty to true. This method automatically
     ' notifies the underlying CacheDependency object to 
     ' release any resources associated with this class. 
     Protected Overrides Sub DependencyDispose()
        Disposed = True
     End Sub
     
     
 End Class

Comentarios

Si desea derivar su propia clase de CacheDependency, implemente esta versión del CacheDependency constructor.

Consulte también

Se aplica a

CacheDependency(String)

Inicializa una nueva instancia de la clase CacheDependency que supervisa un archivo o directorio en lo que se refiere a los cambios.

public:
 CacheDependency(System::String ^ filename);
public CacheDependency (string filename);
new System.Web.Caching.CacheDependency : string -> System.Web.Caching.CacheDependency
Public Sub New (filename As String)

Parámetros

filename
String

Ruta a un archivo o directorio del que depende el objeto en caché. Cuando cambia este recurso, el objeto almacenado en caché queda obsoleto y se quita de la caché.

Ejemplos

En el ejemplo de código siguiente se crea una instancia de la CacheDependency clase con una dependencia en un archivo XML. A continuación, el Cache.Insert método agrega un elemento al Cache que depende de ese archivo.

CacheDependency dep = new CacheDependency(Server.MapPath("isbn.xml"));
Cache.Insert("ISBNData", Source, dep);

Dim dep As New CacheDependency(Server.MapPath("isbn.xml"))
    Cache.Insert("ISBNData", Source, dep)

También puede usar la técnica siguiente para agregar un elemento a Cache con una dependencia en un archivo.

// Make key1 dependent on a file.
CacheDependency dependency = new CacheDependency(Server.MapPath("isbn.xml"));

Cache.Insert("key1", "Value 1", dependency);
    ' Make key1 dependent on a file.
    Dim dependency as new CacheDependency(Server.MapPath("isbn.xml"))

    Cache.Insert("key1", "Value 1", dependency)
End If

Comentarios

Si el directorio o archivo especificado en el filename parámetro no se encuentra en el sistema de archivos, se tratará como ausente. Si falta el directorio o el archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de Cache cuando se cree el directorio o el archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita al crear el archivo xyz.dat.

Consulte también

Se aplica a

CacheDependency(String[])

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios).

public:
 CacheDependency(cli::array <System::String ^> ^ filenames);
public CacheDependency (string[] filenames);
new System.Web.Caching.CacheDependency : string[] -> System.Web.Caching.CacheDependency
Public Sub New (filenames As String())

Parámetros

filenames
String[]

Matriz de rutas de acceso (a archivos o directorios) de la que depende el objeto almacenado en caché. Cuando cambia alguno de estos recursos, el objeto almacenado en caché queda obsoleto y se quita de la caché.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar el Cache.Insert método para agregar un elemento a con Cache dependencias en una matriz de archivos. También puede hacer que el elemento dependa de una matriz de directorios.

    // Make key1 dependent on several files.
    String[] files = new String[2];
    files[0] = Server.MapPath("isbn.xml");
    files[1] = Server.MapPath("customer.xml");
    CacheDependency dependency = new CacheDependency(files);

    Cache.Insert("key1", "Value 1", dependency);
}
    ' Make key1 dependent on several files.
    Dim files(2) as String
    files(0) = Server.MapPath("isbn.xml")
    files(1) = Server.MapPath("customer.xml")
    Dim dependency as new CacheDependency(files)

    Cache.Insert("key1", "Value 1", dependency)
End If

Comentarios

Si alguno de los archivos o directorios de la matriz cambia o se quita de la matriz, el elemento almacenado en caché queda obsoleto y se quita del objeto de Cache la aplicación.

Además, si alguno de los directorios o archivos especificados en el filenames parámetro no se encuentra en el sistema de archivos, se trata como ausente. Si falta un directorio o un archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de cuando Cache se cree ese directorio o archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita al crear el archivo xyz.dat.

Nota

Al crear la matriz que contiene las dependencias de archivo, debe definir el número de archivos en los que depende el elemento que va a agregar.Cache

Consulte también

Se aplica a

CacheDependency(String, DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa un archivo o directorio en lo que se refiere a los cambios.

public:
 CacheDependency(System::String ^ filename, DateTime start);
public CacheDependency (string filename, DateTime start);
new System.Web.Caching.CacheDependency : string * DateTime -> System.Web.Caching.CacheDependency
Public Sub New (filename As String, start As DateTime)

Parámetros

filename
String

Ruta a un archivo o directorio del que depende el objeto en caché. Cuando cambia este recurso, el objeto almacenado en caché queda obsoleto y se quita de la caché.

start
DateTime

Hora que se utilizará como referencia para comprobar la fecha de última modificación del directorio o archivo.

Ejemplos

En el ejemplo de código siguiente se usa este constructor para crear una instancia de un CacheDependency objeto y, a continuación, se inserta un elemento en con Cache esa dependencia. El dt valor pasado en el start parámetro se establece DateTime.Nowen .

// Insert the cache item.
CacheDependency dep = new CacheDependency(fileName, dt);
cache.Insert("key", "value", dep);

// Check whether CacheDependency.HasChanged is true.
if (dep.HasChanged)
  Response.Write("<p>The dependency has changed.");  
else Response.Write("<p>The dependency has not changed.");
' Insert the cache item.
Dim dep As New CacheDependency(fileName, dt)
myCache.Insert("key", "value", dep)

' Check whether CacheDependency.HasChanged is true.
If dep.HasChanged Then
   Response.Write("<p>The dependency has changed.")
Else
   Response.Write("<p>The dependency has not changed.")
End If 

Comentarios

Si el directorio o archivo especificado en el filename parámetro no se encuentra en el sistema de archivos, se tratará como ausente. Si falta el directorio o el archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de Cache cuando se cree el directorio o el archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita al crear el archivo xyz.dat.

Nota

El seguimiento de cambios comienza inmediatamente y no se basa directamente en el start parámetro . Use el start parámetro para pasar una fecha y hora en el pasado en el que desea comprobar la fecha de última modificación del directorio o archivo pasados en el filename parámetro . Si la fecha de la última modificación es posterior a la fecha y hora establecida en el start parámetro , el elemento almacenado en caché se quita de Cache.

Consulte también

Se aplica a

CacheDependency(String[], DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios) y especifica la hora a la que comienza la supervisión de cambios.

public:
 CacheDependency(cli::array <System::String ^> ^ filenames, DateTime start);
public CacheDependency (string[] filenames, DateTime start);
new System.Web.Caching.CacheDependency : string[] * DateTime -> System.Web.Caching.CacheDependency
Public Sub New (filenames As String(), start As DateTime)

Parámetros

filenames
String[]

Matriz de rutas de acceso (a archivos o directorios) de la que depende el objeto almacenado en caché. Cuando cambia alguno de estos recursos, el objeto almacenado en caché queda obsoleto y se quita de la caché.

start
DateTime

Hora que se utilizará como referencia para comprobar la fecha de última modificación de los objetos de la matriz.

Ejemplos

En el ejemplo de código siguiente se crea un CacheDependency objeto que pasa dos archivos XML y un DateTime.Now valor cuando el objeto se incluye como argumento de parámetro en una Cache.Insert llamada de método.

// Create a DateTime object that determines
// when dependency monitoring begins.
DateTime dt = DateTime.Now;
    // Make key1 dependent on several files.
    String[] files = new String[2];
    files[0] = Server.MapPath("isbn.xml");
    files[1] = Server.MapPath("customer.xml");
    CacheDependency dep = new CacheDependency(files, dt);

    Cache.Insert("key1", "Value 1", dep);
}
    ' Create a DateTime object that determines
    '  when dependency monitoring begins.
    Dim dt As DateTime = DateTime.Now

    ' Make key1 dependent on several files.
    Dim files(2) as String
    files(0) = Server.MapPath("isbn.xml")
    files(1) = Server.MapPath("customer.xml")
    Dim dependency as new CacheDependency(files, dt)

    Cache.Insert("key1", "Value 1", dependency)
End If

Comentarios

Si alguno de los directorios o archivos especificados en el filenames parámetro no se encuentra en el sistema de archivos, se trata como ausente. Si falta un directorio o un archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de cuando Cache se cree ese directorio o archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita al crear el archivo xyz.dat.

Nota

El seguimiento de cambios comienza inmediatamente y no se basa directamente en el start parámetro . Use el start parámetro para pasar una fecha y hora en el pasado en la que desea comprobar la fecha de última modificación de la matriz pasada en el filenames parámetro . Si la fecha de última modificación de cualquier objeto de la matriz es posterior a la fecha y hora establecida en el start parámetro , el elemento almacenado en caché se quita de Cache.

Consulte también

Se aplica a

CacheDependency(String[], String[])

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas.

public:
 CacheDependency(cli::array <System::String ^> ^ filenames, cli::array <System::String ^> ^ cachekeys);
public CacheDependency (string[] filenames, string[] cachekeys);
new System.Web.Caching.CacheDependency : string[] * string[] -> System.Web.Caching.CacheDependency
Public Sub New (filenames As String(), cachekeys As String())

Parámetros

filenames
String[]

Matriz de rutas de acceso (a archivos o directorios) de la que depende el objeto almacenado en caché. Cuando cambia alguno de estos recursos, el objeto almacenado en caché queda obsoleto y se quita de la caché.

cachekeys
String[]

Matriz de claves de caché que el nuevo objeto supervisa por si hay cambios. Cuando cambia alguna de estas claves de caché, el objeto almacenado en caché asociado a este objeto de dependencia queda obsoleto y se quita de la caché.

Ejemplos

El siguiente fragmento de código muestra cómo insertar un elemento en la Cache aplicación con una dependencia de una clave a otro elemento colocado en la memoria caché. Dado que este método usa la sintaxis de matriz, debe definir el número de claves en las que depende el elemento que va a agregar.Cache

public void CreateDependency(Object sender, EventArgs e) {
    // Create a cache entry.
    Cache["key1"] = "Value 1";

    // Make key2 dependent on key1.
    String[] dependencyKey = new String[1];
    dependencyKey[0] = "key1";
    CacheDependency dependency = new CacheDependency(null, dependencyKey);

    Cache.Insert("key2", "Value 2", dependency);

    DisplayValues();
}
Public Sub CreateDependency(sender As Object, e As EventArgs)
    ' Create a cache entry.
    Cache("key1") = "Value 1"

    ' Make key2 dependent on key1.
    Dim dependencyKey(0) As String
    dependencyKey(0) = "key1"
    Dim dependency As new CacheDependency(Nothing, dependencyKey)

    Cache.Insert("key2", "Value 2", dependency)

    DisplayValues()
End Sub

Comentarios

Además, si alguno de los directorios o archivos especificados en el filenames parámetro no se encuentra en el sistema de archivos, se trata como ausente. Si falta un directorio o un archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de cuando Cache se cree ese directorio o archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita al crear el archivo xyz.dat.

Sin embargo, la cachekeys dependencia no funciona de la misma manera. Si al menos un valor del cachekeys parámetro no existe en el momento de una inserción, se produce un error en la inserción. Tenga en cuenta que no se produce ninguna excepción para este escenario.

Consulte también

Se aplica a

CacheDependency(String[], String[], DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas.

public:
 CacheDependency(cli::array <System::String ^> ^ filenames, cli::array <System::String ^> ^ cachekeys, DateTime start);
public CacheDependency (string[] filenames, string[] cachekeys, DateTime start);
new System.Web.Caching.CacheDependency : string[] * string[] * DateTime -> System.Web.Caching.CacheDependency
Public Sub New (filenames As String(), cachekeys As String(), start As DateTime)

Parámetros

filenames
String[]

Matriz de rutas de acceso (a archivos o directorios) de la que depende el objeto almacenado en caché. Cuando cambia alguno de estos recursos, el objeto almacenado en caché queda obsoleto y se quita de la caché.

cachekeys
String[]

Matriz de claves de caché que el nuevo objeto supervisa por si hay cambios. Cuando cambia alguna de estas claves de caché, el objeto almacenado en caché asociado a este objeto de dependencia queda obsoleto y se quita de la caché.

start
DateTime

Fecha y hora que se utilizarán como referencia para comprobar la fecha de última modificación de los objetos pasados en las matrices filenames y cachekeys.

Ejemplos

En el ejemplo de código siguiente se crea un CreateDependency método . Cuando se llama a este método, crea un DateTime objeto y la Cache.Item[] propiedad se usa para agregar un elemento a la memoria caché con un key parámetro de key1 y un valor de Value 1. A continuación, se crea una matriz de cadenas, dependencyKey, con el valor de key1 . A continuación, este CacheDependency constructor crea una instancia de un CacheDependency objeto que pasa dependencyKey y el DateTime objeto como argumentos de parámetro. A Cache.Insert continuación, se llama al método utilizando el CacheDependency objeto como parámetro. Esto hace que el objeto se agregue a la memoria caché mediante el Insert método dependiente de la key1 clave.

public void CreateDependency(Object sender, EventArgs e)
{
    // Create a DateTime object.
    DateTime dt = DateTime.Now.AddSeconds(10);

    // Create a cache entry.
    Cache["key1"] = "Value 1";

    // Make key2 dependent on key1.
    String[] dependencyKey = new String[1];
    dependencyKey[0] = "key1";
    CacheDependency dependency = new CacheDependency(null, dependencyKey, dt);

    Cache.Insert("key2", "Value 2", dependency);

    DisplayValues();
}
Public Sub CreateDependency(sender As Object, e As EventArgs)
' Create a DateTime object.
Dim dt as DateTime = DateTime.Now.AddSeconds(10)        

' Create a cache entry.
    Cache("key1") = "Value 1"

    ' Make key2 dependent on key1.
    Dim dependencyKey(0) As String
    dependencyKey(0) = "key1"
    Dim dependency As new CacheDependency(Nothing, dependencyKey, dt)

    Cache.Insert("key2", "Value 2", dependency)

    DisplayValues()
End Sub

Comentarios

Además, si alguno de los directorios o archivos especificados en el filenames parámetro no se encuentra en el sistema de archivos, se trata como ausente. Si falta un directorio o un archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de cuando Cache se cree ese directorio o archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita tras la creación del archivo xyz.dat.

Sin embargo, la cachekeys dependencia no funciona de la misma manera. Si no existe al menos un valor en el cachekeys parámetro en el momento de una inserción, se produce un error en la inserción. Tenga en cuenta que no se produce ninguna excepción para este escenario.

Nota

El seguimiento de cambios comienza inmediatamente y no se basa directamente en el start parámetro . Use el start parámetro para pasar una fecha y hora en el pasado en la que desea comprobar la fecha de la última modificación de cualquier objeto pasado en los filenames parámetros o cachekeys . Si la fecha de última modificación de cualquiera de esos objetos es posterior a la fecha y hora establecida pasada en el start parámetro , el elemento almacenado en caché se quita de Cache.

Consulte también

Se aplica a

CacheDependency(String[], String[], CacheDependency)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas. También pasa a convertirse en dependiente en una instancia aparte de la clase CacheDependency.

public:
 CacheDependency(cli::array <System::String ^> ^ filenames, cli::array <System::String ^> ^ cachekeys, System::Web::Caching::CacheDependency ^ dependency);
public CacheDependency (string[] filenames, string[] cachekeys, System.Web.Caching.CacheDependency dependency);
new System.Web.Caching.CacheDependency : string[] * string[] * System.Web.Caching.CacheDependency -> System.Web.Caching.CacheDependency
Public Sub New (filenames As String(), cachekeys As String(), dependency As CacheDependency)

Parámetros

filenames
String[]

Matriz de rutas de acceso (a archivos o directorios) de la que depende el objeto almacenado en caché. Cuando cambia alguno de estos recursos, el objeto almacenado en caché queda obsoleto y se quita de la caché.

cachekeys
String[]

Matriz de claves de caché que el nuevo objeto supervisa por si hay cambios. Cuando cambia alguna de estas claves de caché, el objeto almacenado en caché asociado a este objeto de dependencia queda obsoleto y se quita de la caché.

dependency
CacheDependency

Otra instancia de la clase CacheDependency de la que esta instancia es dependiente.

Ejemplos

En el ejemplo de código siguiente se crea un CreateDependency método . Cuando se llama a este método, usa la Cache.Item[] propiedad para agregar un elemento a la memoria caché con un key parámetro de key1 y un valor de Value 1. A continuación, se crea una matriz de cadenas, dependencyKey, con el valor de key1 . El CacheDependency.CacheDependency constructor se usa para crear un CacheDependency objeto , dep1que pasa dependencyKey como argumento de parámetro. Se crea un segundo CacheDependency objeto, dep2, con este constructor, con dep1 pasado como tercer argumento de parámetro. Esta segunda dependencia depende de la primera. El Cache.Insert método se llama a continuación, usando el segundo CacheDependency objeto como parámetro. Si la primera dependencia cambia de alguna manera, el elemento almacenado en caché se invalidará.

public void CreateDependency(Object sender, EventArgs e) {
    // Create a cache entry.
    Cache["key1"] = "Value 1";

    // Make key2 dependent on key1.
    String[] dependencyKey = new String[1];
    dependencyKey[0] = "key1";
    CacheDependency dep1 = new CacheDependency(null, dependencyKey);

    // Make a second CacheDependency dependent on dep1.        
    CacheDependency dep2 = new CacheDependency(null, null, dep1);

    Cache.Insert("key2", "Value 2", dep2);

    DisplayValues();
}
 Public Sub CreateDependency(sender As [Object], e As EventArgs)
   ' Create a cache entry.
   Cache("key1") = "Value 1"

   ' Make key2 dependent on key1 using double dependency.
   Dim dependencyKey(0) As [String]
   dependencyKey(0) = "key1"
   Dim dep1 As New CacheDependency(Nothing, dependencyKey)

   ' Make a second CacheDependency dependent on dep1.        
   Dim dep2 As New CacheDependency(Nothing, Nothing, dep1)

   Cache.Insert("key2", "Value 2", dep2)

   DisplayValues()
End Sub 'CreateDependency

Comentarios

Además, si alguno de los directorios o archivos especificados en el filenames parámetro no se encuentra en el sistema de archivos, se trata como ausente. Si falta un directorio o un archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de cuando Cache se cree ese directorio o archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita tras la creación del archivo xyz.dat.

Sin embargo, la cachekeys dependencia no funciona de la misma manera. Si no existe al menos un valor en el cachekeys parámetro en el momento de una inserción, se produce un error en la inserción. Tenga en cuenta que no se produce ninguna excepción para este escenario.

Se aplica a

CacheDependency(String[], String[], CacheDependency, DateTime)

Inicializa una nueva instancia de la clase CacheDependency que supervisa los cambios en una matriz de rutas de acceso (a archivos o directorios), en una matriz de claves de caché o en ambas. También pasa a convertirse en dependiente en otra instancia de la clase CacheDependency y a la hora a la que empieza a realizarse la supervisión de los cambios.

public:
 CacheDependency(cli::array <System::String ^> ^ filenames, cli::array <System::String ^> ^ cachekeys, System::Web::Caching::CacheDependency ^ dependency, DateTime start);
public CacheDependency (string[] filenames, string[] cachekeys, System.Web.Caching.CacheDependency dependency, DateTime start);
new System.Web.Caching.CacheDependency : string[] * string[] * System.Web.Caching.CacheDependency * DateTime -> System.Web.Caching.CacheDependency
Public Sub New (filenames As String(), cachekeys As String(), dependency As CacheDependency, start As DateTime)

Parámetros

filenames
String[]

Matriz de rutas de acceso (a archivos o directorios) de la que depende el objeto almacenado en caché. Cuando cambia alguno de estos recursos, el objeto almacenado en caché queda obsoleto y se quita de la caché.

cachekeys
String[]

Matriz de claves de caché que el nuevo objeto supervisa por si hay cambios. Cuando cambia alguna de estas claves de caché, el objeto almacenado en caché asociado a este objeto de dependencia queda obsoleto y se quita de la caché.

dependency
CacheDependency

Otra instancia de la clase CacheDependency de la que esta instancia es dependiente.

start
DateTime

Hora que se utilizará como referencia para comprobar la fecha de última modificación de los objetos de las matrices y el objeto CacheDependency.

Ejemplos

En el ejemplo de código siguiente se muestra un CreateDependency método . Cuando se llama a este método, crea un DateTime objeto y la Cache.Item[] propiedad se usa para agregar un elemento a la memoria caché con un parámetro de clave de key1 y un valor de Value 1. A continuación, se crea una matriz de cadenas, dependencyKey, con el valor en su primer índice (y solo) establecido en el valor de key1 . A CacheDependency.CacheDependency continuación, el constructor se usa para crear un CacheDependency objeto , dep1que pasa dependencyKey como argumento de parámetro. A continuación, se crea un segundo CacheDependency objeto con dep2este constructor, con dep1 y el DateTime objeto pasado como argumentos de parámetro. Esta segunda dependencia depende de la primera y la supervisión de dependencias comenzará 10 segundos después de llamar al CreateDependency método . El Cache.Insert método se llama a continuación, usando el segundo CacheDependency objeto como parámetro. Si la primera dependencia cambia de alguna manera, el elemento almacenado en caché se invalidará.

public void CreateDependency(Object sender, EventArgs e) {
    // Create a DateTime object.
    DateTime dt = DateTime.Now.AddSeconds(10);

    // Create a cache entry.
    Cache["key1"] = "Value 1";

    // Make key2 dependent on key1.
    String[] dependencyKey = new String[1];
    dependencyKey[0] = "key1";
    CacheDependency dep1 = new CacheDependency(null, dependencyKey);

    // Make a second CacheDependency dependent on dep1.
    // and use dt to start change monitoring.        
    CacheDependency dep2 = new CacheDependency(null, null, dep1, dt);

    Cache.Insert("key2", "Value 2", dep2);

    DisplayValues();
}
 Public Sub CreateDependency(sender As [Object], e As EventArgs)
   ' Create a DateTime object.
   Dim dt as DateTime = DateTime.Now.AddSeconds(10)        

   ' Create a cache entry.
   Cache("key1") = "Value 1"

   ' Make key2 dependent on key1 using double dependency.
   Dim dependencyKey(0) As [String]
   dependencyKey(0) = "key1"
   Dim dep1 As New CacheDependency(Nothing, dependencyKey)

   ' Make a second CacheDependency dependent on dep1
   ' and use dt to start change monitoring.        
   Dim dep2 As New CacheDependency(Nothing, Nothing, dep1, dt)

   Cache.Insert("key2", "Value 2", dep2)

   DisplayValues()
End Sub 'CreateDependency

Comentarios

Además, si alguno de los directorios o archivos especificados en el filenames parámetro no se encuentra en el sistema de archivos, se trata como ausente. Si falta un directorio o un archivo cuando el objeto con la dependencia se agrega a Cache, el objeto almacenado en caché se quitará de cuando Cache se cree ese directorio o archivo.

Por ejemplo, supongamos que agrega un objeto a Cache con una dependencia en la siguiente ruta de acceso de archivo: c:\stocks\xyz.dat. Si ese archivo no se encuentra cuando se crea el CacheDependency objeto, pero se crea más adelante, el objeto almacenado en caché se quita tras la creación del archivo xyz.dat.

Sin embargo, la cachekeys dependencia no funciona de la misma manera. Si no existe al menos un valor en el cachekeys parámetro en el momento de una inserción, se produce un error en la inserción. Tenga en cuenta que no se produce ninguna excepción para este escenario.

Nota

El seguimiento de cambios comienza inmediatamente y no se basa directamente en el start parámetro . Use el start parámetro para pasar una fecha y hora en el pasado en la que desea comprobar la fecha de la última modificación de cualquiera de los objetos pasados en los filenamesparámetros , cachekeyso dependency . Si la fecha de última modificación de cualquiera de esos objetos es posterior a la fecha y hora pasadas en el start parámetro , el elemento almacenado en caché se quita de Cache.

Consulte también

Se aplica a