CacheDependency Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy CacheDependency.
Przeciążenia
| Nazwa | Opis |
|---|---|
| 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. To również sprawia, że jest zależna 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. To również sprawia, że zależy 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ę CacheDependency konstruktora jako wszystkie klasy, z CacheDependency których pochodzą, są wymagane.
' 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 Cache elementu zależnego 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 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 katalogu lub pliku.
Załóżmy na przykład, że dodajesz obiekt do Cache obiektu 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, obiekt buforowany 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 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 dodajesz obiekt do Cache obiektu 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, obiekt buforowany zostanie usunięty podczas tworzenia pliku xyz.dat.
Note
Podczas tworzenia tablicy zawierającej zależności plików należy zdefiniować liczbę plików, od których jest zależny 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, buforowany obiekt 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 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 katalogu lub pliku.
Załóżmy na przykład, że dodajesz obiekt do Cache obiektu 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, obiekt buforowany zostanie usunięty podczas tworzenia pliku xyz.dat.
Note
Ś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 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łączany 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 dodajesz obiekt do Cache obiektu 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, obiekt buforowany zostanie usunięty podczas tworzenia pliku xyz.dat.
Note
Ś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 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, które nowy obiekt monitoruje pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej ulegnie zmianie, buforowany obiekt skojarzony z tym obiektem zależności stanie się przestarzały i zostanie usunięty 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 momentu utworzenia tego katalogu lub pliku.
Załóżmy na przykład, że dodajesz obiekt do Cache obiektu 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, obiekt buforowany 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 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, które nowy obiekt monitoruje pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej ulegnie zmianie, buforowany obiekt skojarzony z tym obiektem zależności stanie się przestarzały i zostanie usunięty z pamięci podręcznej.
- start
- DateTime
Data i godzina sprawdzania 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 momentu utworzenia tego katalogu lub pliku.
Załóżmy na przykład, że dodajesz obiekt do Cache obiektu 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, obiekt buforowany 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.
Note
Ś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 parametrach filenames 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. To również sprawia, że jest 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 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, które nowy obiekt monitoruje pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej ulegnie zmianie, buforowany obiekt skojarzony z tym obiektem zależności stanie się przestarzały i zostanie usunięty 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 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 dodajesz obiekt do Cache obiektu 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, obiekt buforowany 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 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. To również sprawia, że zależy 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, które nowy obiekt monitoruje pod kątem zmian. Gdy którykolwiek z tych kluczy pamięci podręcznej ulegnie zmianie, buforowany obiekt skojarzony z tym obiektem zależności stanie się przestarzały i zostanie usunięty z pamięci podręcznej.
- dependency
- CacheDependency
Inne wystąpienie CacheDependency klasy, od którego zależy to wystąpienie.
- start
- DateTime
Godzina sprawdzenia 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 key1 klucza 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 utworzenia CacheDependency obiektu , dep1który przekazuje dependencyKey jako argument parametru. Drugi CacheDependency obiekt dep2, , jest następnie tworzony przy użyciu tego konstruktora, z dep1 i DateTime 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ść 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 dodajesz obiekt do Cache obiektu 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, obiekt buforowany 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.
Note
Ś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 parametrach filenames, lub cachekeysdependency . 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 Cacheobiektu .