Udostępnij za pośrednictwem


CacheDependency Konstruktory

Definicja

Inicjuje nowe wystąpienie klasy CacheDependency.

Przeciążenia

CacheDependency()

Inicjuje nowe wystąpienie klasy CacheDependency.

CacheDependency(String)

Inicjuje CacheDependency nowe wystąpienie klasy, która monitoruje plik lub katalog pod kątem zmian.

CacheDependency(String[])

Inicjuje CacheDependency nowe wystąpienie klasy, która monitoruje tablicę ścieżek (do plików lub katalogów) pod kątem zmian.

CacheDependency(String, DateTime)

Inicjuje CacheDependency nowe wystąpienie klasy, która monitoruje plik lub katalog pod kątem zmian.

CacheDependency(String[], DateTime)

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów) pod kątem zmian i określa czas rozpoczęcia monitorowania zmian.

CacheDependency(String[], String[])

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany.

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

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany.

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

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany. Jest on również zależny od oddzielnego CacheDependency wystąpienia klasy.

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

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany. Jest również zależna od innego wystąpienia CacheDependency klasy i czasu rozpoczęcia monitorowania zmian.

CacheDependency()

Inicjuje nowe wystąpienie klasy CacheDependency.

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

Przykłady

Poniższy przykład kodu to klasa, która implementuje tę wersję konstruktora CacheDependency jako wszystkie klasy, które pochodzą z CacheDependency klasy, są wymagane do.

' 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

Uwagi

Jeśli chcesz utworzyć własną klasę z CacheDependencyklasy , zaimplementuj tę wersję konstruktora CacheDependency .

Zobacz też

Dotyczy

CacheDependency(String)

Inicjuje CacheDependency nowe wystąpienie klasy, która monitoruje plik lub katalog pod kątem zmian.

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)

Parametry

filename
String

Ścieżka do pliku lub katalogu, od którego zależy buforowany obiekt. Gdy ten zasób ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

Przykłady

Poniższy przykład kodu tworzy wystąpienie CacheDependency klasy z zależnością od pliku XML. Następnie Cache.Insert metoda dodaje element do elementu zależnego Cache od tego pliku.

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)

Możesz również użyć następującej techniki, aby dodać element do Cache elementu z zależnością od pliku.

// 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

Uwagi

Jeśli katalog lub plik określony w parametrze filename nie zostanie znaleziony w systemie plików, będzie on traktowany jako brakujący. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

Zobacz też

Dotyczy

CacheDependency(String[])

Inicjuje CacheDependency nowe wystąpienie klasy, która monitoruje tablicę ścieżek (do plików lub katalogów) pod kątem zmian.

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())

Parametry

filenames
String[]

Tablica ścieżek (do plików lub katalogów), od których zależy buforowany obiekt. Gdy którykolwiek z tych zasobów ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

Przykłady

W poniższym przykładzie kodu pokazano, jak za pomocą Cache.Insert metody dodać element do Cache elementu z zależnościami na tablicy plików. Możesz również ustawić element zależny od tablicy katalogów.

    // 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

Uwagi

Jeśli którykolwiek z plików lub katalogów w tablicy ulegnie zmianie lub zostanie usunięty z tablicy, buforowany element stanie się przestarzały i zostanie usunięty z obiektu aplikacji Cache .

Ponadto, jeśli którykolwiek z katalogów lub plików określonych w parametrze filenames nie zostanie znaleziony w systemie plików, jest traktowany jako brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache momentu utworzenia tego katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

Uwaga

Podczas tworzenia tablicy zawierającej zależności pliku należy zdefiniować liczbę plików, od których jest dodany Cache element, jest zależny.

Zobacz też

Dotyczy

CacheDependency(String, DateTime)

Inicjuje CacheDependency nowe wystąpienie klasy, która monitoruje plik lub katalog pod kątem zmian.

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)

Parametry

filename
String

Ścieżka do pliku lub katalogu, od którego zależy buforowany obiekt. Gdy ten zasób ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

start
DateTime

Godzina sprawdzenia ostatniej modyfikacji katalogu lub pliku.

Przykłady

Poniższy przykład kodu używa tego konstruktora do utworzenia wystąpienia CacheDependency obiektu, a następnie wstawia element do Cache tej zależności. Wartość przekazana dt w parametrze start jest ustawiona na DateTime.Nowwartość .

// 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 

Uwagi

Jeśli katalog lub plik określony w parametrze filename nie zostanie znaleziony w systemie plików, będzie on traktowany jako brakujący. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

Uwaga

Śledzenie zmian rozpoczyna się natychmiast i nie jest bezpośrednio oparte na parametrze start . Użyj parametru start , aby przekazać datę i godzinę w przeszłości, względem której chcesz sprawdzić datę ostatniej modyfikacji katalogu lub pliku przekazanego w parametrze filename . Jeśli data ostatniej modyfikacji jest późniejsza niż data i godzina przekazana w parametrze start , buforowany element zostanie usunięty z Cacheelementu .

Zobacz też

Dotyczy

CacheDependency(String[], DateTime)

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów) pod kątem zmian i określa czas rozpoczęcia monitorowania zmian.

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)

Parametry

filenames
String[]

Tablica ścieżek (do plików lub katalogów), od których zależy buforowany obiekt. Gdy którykolwiek z tych zasobów ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

start
DateTime

Godzina sprawdzenia ostatniej zmodyfikowanej daty obiektów w tablicy.

Przykłady

Poniższy przykład kodu tworzy CacheDependency obiekt, który przekazuje dwa pliki XML i DateTime.Now wartość po dołączeniu obiektu jako argument parametru Cache.Insert w wywołaniu metody.

// 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

Uwagi

Jeśli którykolwiek z katalogów lub plików określonych w parametrze filenames nie zostanie znaleziony w systemie plików, jest traktowany jako brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache momentu utworzenia tego katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

Uwaga

Śledzenie zmian rozpoczyna się natychmiast i nie jest bezpośrednio oparte na parametrze start . Użyj parametru start , aby przekazać datę i godzinę w przeszłości, względem której chcesz sprawdzić datę ostatniej modyfikacji tablicy przekazanej w parametrze filenames . Jeśli data ostatniej modyfikacji dowolnego obiektu w tablicy jest późniejsza niż data i godzina przekazana w parametrze start , buforowany element zostanie usunięty z Cacheelementu .

Zobacz też

Dotyczy

CacheDependency(String[], String[])

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany.

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())

Parametry

filenames
String[]

Tablica ścieżek (do plików lub katalogów), od których zależy buforowany obiekt. Gdy którykolwiek z tych zasobów ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

cachekeys
String[]

Tablica kluczy pamięci podręcznej monitorowana przez nowy obiekt pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej zmieni się, buforowany obiekt skojarzony z tym obiektem zależności staje się przestarzały i jest usuwany z pamięci podręcznej.

Przykłady

Poniższy fragment kodu pokazuje, jak wstawić element do aplikacji Cache z zależnością od klucza do innego elementu umieszczonego w pamięci podręcznej. Ponieważ ta metoda używa składni tablicy, należy zdefiniować liczbę kluczy, na których jest zależny element dodany 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

Uwagi

Ponadto, jeśli którykolwiek z katalogów lub plików określonych w parametrze filenames nie zostanie znaleziony w systemie plików, jest traktowany jako brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache momentu utworzenia tego katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

cachekeys Jednak zależność nie działa w taki sam sposób. Jeśli co najmniej jedna wartość w parametrze cachekeys nie istnieje w momencie wstawiania, wstawianie kończy się niepowodzeniem. Należy pamiętać, że w tym scenariuszu nie zgłoszono wyjątku.

Zobacz też

Dotyczy

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

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany.

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)

Parametry

filenames
String[]

Tablica ścieżek (do plików lub katalogów), od których zależy buforowany obiekt. Gdy którykolwiek z tych zasobów ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

cachekeys
String[]

Tablica kluczy pamięci podręcznej monitorowana przez nowy obiekt pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej zmieni się, buforowany obiekt skojarzony z tym obiektem zależności staje się przestarzały i jest usuwany z pamięci podręcznej.

start
DateTime

Data i godzina sprawdzenia ostatniej modyfikacji obiektów przekazanych w filenames tablicach i cachekeys .

Przykłady

Poniższy przykład kodu tworzy metodę CreateDependency . Po wywołaniu tej metody tworzy DateTime obiekt, a Cache.Item[] właściwość jest używana do dodawania elementu do pamięci podręcznej z parametrem keykey1 i wartością Value 1. Tablica ciągów , dependencyKeyjest następnie tworzona z wartością key1 . Ten CacheDependency konstruktor tworzy następnie wystąpienie CacheDependency obiektu, który przekazuje dependencyKey obiekt i DateTime obiekt jako argumenty parametrów. Metoda jest wywoływana Cache.Insert dalej, używając CacheDependency obiektu jako parametru. Dzięki temu obiekt został dodany do pamięci podręcznej przy użyciu Insert metody zależnej key1 od klucza.

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

Uwagi

Ponadto, jeśli którykolwiek z katalogów lub plików określonych w parametrze filenames nie zostanie znaleziony w systemie plików, jest traktowany jako brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache momentu utworzenia tego katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

cachekeys Jednak zależność nie działa w taki sam sposób. Jeśli co najmniej jedna wartość w parametrze cachekeys nie istnieje w momencie wstawiania, wstawianie kończy się niepowodzeniem. Należy pamiętać, że w tym scenariuszu nie zgłoszono wyjątku.

Uwaga

Śledzenie zmian rozpoczyna się natychmiast i nie jest bezpośrednio oparte na parametrze start . Użyj parametru start , aby przekazać datę i godzinę w przeszłości, względem której chcesz sprawdzić datę ostatniej modyfikacji dowolnego obiektu przekazanego w filenames parametrach lub cachekeys . Jeśli data ostatniej modyfikacji dowolnego z tych obiektów jest późniejsza niż data i godzina przekazana w parametrze start , buforowany element zostanie usunięty z Cacheelementu .

Zobacz też

Dotyczy

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

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany. Jest on również zależny od oddzielnego CacheDependency wystąpienia klasy.

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)

Parametry

filenames
String[]

Tablica ścieżek (do plików lub katalogów), od których zależy buforowany obiekt. Gdy którykolwiek z tych zasobów ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

cachekeys
String[]

Tablica kluczy pamięci podręcznej monitorowana przez nowy obiekt pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej zmieni się, buforowany obiekt skojarzony z tym obiektem zależności staje się przestarzały i jest usuwany z pamięci podręcznej.

dependency
CacheDependency

Inne wystąpienie CacheDependency klasy, od którego zależy to wystąpienie.

Przykłady

Poniższy przykład kodu tworzy metodę CreateDependency . Po wywołaniu tej metody używa Cache.Item[] właściwości , aby dodać element do pamięci podręcznej z parametrem keykey1 i wartością Value 1. Tablica ciągów , dependencyKeyjest następnie tworzona z wartością key1 . Konstruktor CacheDependency.CacheDependency służy do tworzenia CacheDependency obiektu , dep1który przekazuje dependencyKey jako argument parametru. Drugi CacheDependency obiekt, dep2, jest tworzony przy użyciu tego konstruktora, z dep1 przekazanym jako trzeci argument parametru. Ta druga zależność jest zależna od pierwszej. Metoda jest wywoływana Cache.Insert dalej, używając drugiego CacheDependency obiektu jako parametru. Jeśli pierwsza zależność zmieni się w jakikolwiek sposób, buforowany element zostanie unieważniony.

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

Uwagi

Ponadto, jeśli którykolwiek z katalogów lub plików określonych w parametrze filenames nie zostanie znaleziony w systemie plików, jest traktowany jako brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache momentu utworzenia tego katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

cachekeys Jednak zależność nie działa w taki sam sposób. Jeśli co najmniej jedna wartość w parametrze cachekeys nie istnieje w momencie wstawiania, wstawianie kończy się niepowodzeniem. Należy pamiętać, że w tym scenariuszu nie zgłoszono wyjątku.

Dotyczy

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

Inicjuje nowe wystąpienie CacheDependency klasy, która monitoruje tablicę ścieżek (do plików lub katalogów), tablicę kluczy pamięci podręcznej lub oba te zmiany. Jest również zależna od innego wystąpienia CacheDependency klasy i czasu rozpoczęcia monitorowania zmian.

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)

Parametry

filenames
String[]

Tablica ścieżek (do plików lub katalogów), od których zależy buforowany obiekt. Gdy którykolwiek z tych zasobów ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

cachekeys
String[]

Tablica kluczy pamięci podręcznej monitorowana przez nowy obiekt pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej zmieni się, buforowany obiekt skojarzony z tym obiektem zależności staje się przestarzały i jest usuwany z pamięci podręcznej.

dependency
CacheDependency

Inne wystąpienie CacheDependency klasy, od którego zależy to wystąpienie.

start
DateTime

Godzina sprawdzenia ostatniej zmodyfikowanej daty obiektów w tablicach i CacheDependency obiekcie.

Przykłady

Poniższy przykład kodu przedstawia metodę CreateDependency . Po wywołaniu tej metody tworzy DateTime obiekt, a Cache.Item[] właściwość jest używana do dodawania elementu do pamięci podręcznej z parametrem key1 klucza i wartością Value 1. Tablica ciągów , dependencyKeyjest następnie tworzona z wartością w pierwszym (i tylko) indeksie ustawionym na wartość key1 . Konstruktor CacheDependency.CacheDependency jest następnie używany do tworzenia CacheDependency obiektu , dep1który przekazuje dependencyKey jako argument parametru. Drugi CacheDependency obiekt , dep2jest następnie tworzony przy użyciu tego konstruktora, z obiektem dep1 i DateTime przekazanym jako argumenty parametrów. Ta druga zależność jest zależna od pierwszej, a monitorowanie zależności rozpocznie się 10 sekund po wywołaniu CreateDependency metody. Metoda jest wywoływana Cache.Insert dalej, używając drugiego CacheDependency obiektu jako parametru. Jeśli pierwsza zależność zmieni się w jakikolwiek sposób, buforowany element zostanie unieważniony.

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

Uwagi

Ponadto, jeśli którykolwiek z katalogów lub plików określonych w parametrze filenames nie zostanie znaleziony w systemie plików, jest traktowany jako brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache momentu utworzenia tego katalogu lub pliku.

Załóżmy na przykład, że dodasz obiekt do Cache obiektu z zależnością od następującej ścieżki pliku: c:\stock\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, obiekt buforowany zostanie usunięty po utworzeniu pliku xyz.dat.

cachekeys Jednak zależność nie działa w taki sam sposób. Jeśli co najmniej jedna wartość w parametrze cachekeys nie istnieje w momencie wstawiania, wstawianie kończy się niepowodzeniem. Należy pamiętać, że w tym scenariuszu nie zgłoszono wyjątku.

Uwaga

Śledzenie zmian rozpoczyna się natychmiast i nie jest bezpośrednio oparte na parametrze start . Użyj parametru start , aby przekazać datę i godzinę w przeszłości, względem której chcesz sprawdzić datę ostatniej modyfikacji dowolnego obiektu przekazanego w filenamesparametrach , cachekeyslub dependency . Jeśli data ostatniej modyfikacji dla dowolnego z tych obiektów jest późniejsza niż data i godzina przekazana w parametrze start , buforowany element zostanie usunięty z Cacheelementu .

Zobacz też

Dotyczy