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 CacheDependency nowe wystąpienie 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 CacheDependency nowe wystąpienie 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 CacheDependency nowe wystąpienie 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 CacheDependency nowe wystąpienie 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 oddzielnego CacheDependency wystąpienia klasy.

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

Inicjuje CacheDependency nowe wystąpienie 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 pochodzące 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, obiekt buforowany 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 Cache pliku, który jest zależny 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 elementu Cache 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 brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache obiektu podczas tworzenia katalogu lub pliku.

Załóżmy na przykład, że dodajesz obiekt do obiektu Cache z zależnością od następującej ścieżki pliku: c:\stocks\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, buforowany obiekt zostanie usunięty podczas tworzenia 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 dowolny 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, element buforowany staje się przestarzały i jest usuwany 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 obiektu podczas tworzenia tego katalogu lub pliku.

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

Uwaga

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

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, obiekt buforowany stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

start
DateTime

Godzina sprawdzenia daty ostatniej modyfikacji katalogu lub pliku.

Przykłady

Poniższy przykład kodu używa tego konstruktora do utworzenia CacheDependency wystąpienia 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 brak. Jeśli brakuje katalogu lub pliku, gdy obiekt z zależnością zostanie dodany do Cacheobiektu , buforowany obiekt zostanie usunięty z Cache obiektu podczas tworzenia katalogu lub pliku.

Załóżmy na przykład, że dodajesz obiekt do obiektu Cache z zależnością od następującej ścieżki pliku: c:\stocks\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, buforowany obiekt zostanie usunięty podczas tworzenia 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 elementu Cache.

Zobacz też

Dotyczy

CacheDependency(String[], DateTime)

Inicjuje CacheDependency nowe wystąpienie 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 dowolny z tych zasobów ulegnie zmianie, buforowany obiekt stanie się przestarzały i zostanie usunięty z pamięci podręcznej.

start
DateTime

Czas sprawdzania daty ostatniej modyfikacji obiektów w tablicy.

Przykłady

Poniższy przykład kodu tworzy CacheDependency obiekt, który przekazuje dwa pliki XML i DateTime.Now wartość, gdy obiekt jest dołączony jako argument parametru w wywołaniu Cache.Insert 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 obiektu podczas tworzenia tego katalogu lub pliku.

Załóżmy na przykład, że dodajesz obiekt do obiektu Cache z zależnością od następującej ścieżki pliku: c:\stocks\xyz.dat. Jeśli ten plik nie zostanie znaleziony podczas CacheDependency tworzenia obiektu, ale zostanie utworzony później, buforowany obiekt zostanie usunięty podczas tworzenia 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 Cacheobiektu .

Zobacz też

Dotyczy

CacheDependency(String[], String[])

Inicjuje CacheDependency nowe wystąpienie 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 dowolny 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, które nowy obiekt monitoruje pod kątem zmian. Gdy dowolny z tych kluczy pamięci podręcznej ulegnie zmianie, obiekt buforowany 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 element dodajesz, jest zależny 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 obiektu podczas tworzenia tego katalogu lub pliku.

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

Jednak cachekeys zależność nie działa tak samo. 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 CacheDependency nowe wystąpienie 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 dowolny 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, które nowy obiekt monitoruje pod kątem zmian. Gdy dowolny z tych kluczy pamięci podręcznej ulegnie zmianie, obiekt buforowany skojarzony z tym obiektem zależności staje się przestarzały i jest usuwany z pamięci podręcznej.

start
DateTime

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

Przykłady

Poniższy przykład kodu tworzy metodę CreateDependency . Gdy ta metoda jest wywoływana, 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, dependencyKey, jest następnie tworzona z wartością key1 . Następnie ten CacheDependency konstruktor tworzy wystąpienie CacheDependency obiektu, który przekazuje dependencyKey obiekt, a DateTime obiekt jako argumenty parametrów. Metoda jest wywoływana Cache.Insert dalej, używając CacheDependency obiektu jako parametru. Dzięki temu obiekt jest dodawany 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 obiektu podczas tworzenia tego katalogu lub pliku.

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

Jednak cachekeys zależność nie działa tak samo. 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 filenames w 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 elementu Cache.

Zobacz też

Dotyczy

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

Inicjuje CacheDependency nowe wystąpienie 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 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 dowolny 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, które nowy obiekt monitoruje pod kątem zmian. Gdy dowolny z tych kluczy pamięci podręcznej ulegnie zmianie, obiekt buforowany 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 . Gdy ta metoda jest wywoływana, 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, dependencyKey, jest następnie tworzona z wartością key1 . Konstruktor CacheDependency.CacheDependency jest używany do tworzenia CacheDependency obiektu , dep1który przekazuje dependencyKey jako argument parametru. Drugi CacheDependency obiekt , dep2jest 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ść ulegnie zmianie 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 obiektu podczas tworzenia tego katalogu lub pliku.

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

Jednak cachekeys zależność nie działa tak samo. 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 CacheDependency nowe wystąpienie 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 dowolny 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, które nowy obiekt monitoruje pod kątem zmian. Gdy dowolny z tych kluczy pamięci podręcznej ulegnie zmianie, obiekt buforowany 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

Czas sprawdzania daty ostatniej modyfikacji obiektów w tablicach i CacheDependency obiekcie.

Przykłady

Poniższy przykład kodu przedstawia metodę CreateDependency . Gdy ta metoda jest wywoływana, tworzy DateTime obiekt, a Cache.Item[] właściwość jest używana do dodawania elementu do pamięci podręcznej z parametrem klucza key1 i wartością Value 1. Tablica ciągów dependencyKey, , jest 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, dep2, jest następnie tworzony przy użyciu tego konstruktora i dep1DateTime obiekt przekazany 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ść ulegnie zmianie 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 obiektu podczas tworzenia tego katalogu lub pliku.

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

Jednak cachekeys zależność nie działa tak samo. 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 filenamesw parametrach , cachekeyslub dependency . 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 elementu Cache.

Zobacz też

Dotyczy