HostFileChangeMonitor Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Övervakar kataloger och filsökvägar och meddelar cacheminnet av ändringar i de övervakade objekten. Det går inte att ärva den här klassen.
public ref class HostFileChangeMonitor sealed : System::Runtime::Caching::FileChangeMonitor
public sealed class HostFileChangeMonitor : System.Runtime.Caching.FileChangeMonitor
type HostFileChangeMonitor = class
inherit FileChangeMonitor
Public NotInheritable Class HostFileChangeMonitor
Inherits FileChangeMonitor
- Arv
Exempel
I följande exempel skapas ett cacheobjekt som använder ett HostFileChangeMonitor objekt för att övervaka tillståndet för källdata (som är en fil) i filsystemet. Cacheposten definieras med hjälp av ett CacheItemPolicy objekt för att tillhandahålla borttagnings- och förfalloinformation för cacheposten.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Runtime.Caching;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
protected void Button1_Click1(object sender, EventArgs e)
{
ObjectCache cache = MemoryCache.Default;
string fileContents = cache["filecontents"] as string;
if (fileContents == null)
{
CacheItemPolicy policy = new CacheItemPolicy();
policy.AbsoluteExpiration =
DateTimeOffset.Now.AddSeconds(10.0);
List<string> filePaths = new List<string>();
string cachedFilePath = Server.MapPath("~") +
"\\cacheText.txt";
filePaths.Add(cachedFilePath);
policy.ChangeMonitors.Add(new
HostFileChangeMonitor(filePaths));
// Fetch the file contents.
fileContents = File.ReadAllText(cachedFilePath) + "\n"
+ DateTime.Now.ToString();
cache.Set("filecontents", fileContents, policy);
}
Label1.Text = fileContents;
}
}
Imports System.Runtime.Caching
Imports System.IO
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim cache As ObjectCache = MemoryCache.Default
Dim fileContents As String = TryCast(cache("filecontents"), _
String)
If fileContents Is Nothing Then
Dim policy As New CacheItemPolicy()
policy.AbsoluteExpiration = _
DateTimeOffset.Now.AddSeconds(10.0)
Dim filePaths As New List(Of String)()
Dim cachedFilePath As String = Server.MapPath("~") & _
"\cacheText.txt"
filePaths.Add(cachedFilePath)
policy.ChangeMonitors.Add(New _
HostFileChangeMonitor(filePaths))
' Fetch the file contents.
fileContents = File.ReadAllText(cachedFilePath) & _
vbCrLf & DateTime.Now.ToString()
cache.Set("filecontents", fileContents, policy)
End If
Label1.Text = fileContents
End Sub
End Class
Kommentarer
Klassen HostFileChangeMonitor är en konkret implementering av typen FileChangeMonitor . Den här klassen är förseglad och kan därför inte utökas. Den här klassen är användbar om du vill använda en befintlig cacheimplementering och övervaka filer och kataloger för ändringar.
För varje angiven fil- eller katalogsökväg HostFileChangeMonitor utlöser klassen ett ändringsmeddelande om någon av följande ändringar inträffar:
Namnet på den övervakade filen eller katalogändringarna.
Den angivna filen eller katalogen fanns inte när övervakaren skapades, men skapades senare. Med andra ord skapades en fil eller katalog i omfånget för de övervakade objekten.
Storleken på en övervakad fil har ändrats.
Innehållet i en övervakad fil har ändrats eller innehållet i en övervakad katalog har ändrats.
Åtkomstkontrollistan (ACL) för filen eller katalogen ändrades.
Den övervakade filen eller katalogen har tagits bort.
Om för många ändringar sker för den övervakade filen eller katalogen samtidigt kan instansen HostFileChangeMonitor förlora kontrollen över specifika ändringar. I det här scenariot HostFileChangeMonitor utlöser klassen ett ändringsmeddelande. Det här scenariot är mer sannolikt när instansen HostFileChangeMonitor övervakar en katalog och många ändringar sker i katalogstrukturens omfång på kort tid.
Eftersom syftet med HostFileChangeMonitor klassen bara är att signalera att något har ändrats bland uppsättningen övervakade filer och kataloger anses det inte vara viktigt att information om en specifik ändring inte samlas in. Syftet med HostFileChangeMonitor klassen är att meddela att tillståndet har ändrats så att en cachepost (eller poster) kan avlägsnas. HostFileChangeMonitor Eftersom klassen inte anger exakt vad som har ändrats är intern ändringsspårningsspill irrelevant.
När du anger sökvägar till en HostFileChangeMonitor instans måste katalog- och filsökvägarna vara fullständiga sökvägar till katalogen eller filen. Relativa sökvägar och jokertecken i sökvägar tillåts inte.
När klassen HostFileChangeMonitor används i ett ASP.NET program är den Windows identitet som används för åtkomst till övervakade objekt programidentiteten för det ASP.NET programmet. Med andra ord blir programidentiteten något av följande:
Processidentiteten.
Den konfigurerade programidentiteten.
UNC-autentiseringsuppgifterna om programmet körs från en UNC-resurs.
När klassen HostFileChangeMonitor används i ett program som inte är ASP.NET används klassen FileSystemWatcher internt för att övervaka filer. Det innebär att den åtkomstkontrollista (ACL) som gäller för en övervakad fil eller katalog tillämpas på den aktuella trådens Windows identitet.
Note
Anropare måste ha rätt behörighet för kodåtkomstsäkerhet (CAS) och måste ha NTFS-behörighet till alla övervakade kataloger och sökvägar.
Konstruktorer
| Name | Description |
|---|---|
| HostFileChangeMonitor(IList<String>) |
Initierar en ny instans av HostFileChangeMonitor klassen. |
Egenskaper
| Name | Description |
|---|---|
| FilePaths |
Hämtar samlingen med kataloger och filsökvägar som skickades till HostFileChangeMonitor(IList<String>) konstruktorn. |
| HasChanged |
Hämtar ett värde som anger att tillståndet som övervakas av ChangeMonitor klassen har ändrats. (Ärvd från ChangeMonitor) |
| IsDisposed |
Hämtar ett värde som anger att den härledda instansen av en ChangeMonitor klass tas bort. (Ärvd från ChangeMonitor) |
| LastModified |
Hämtar ett skrivskyddat värde som anger den senaste skrivtiden för en övervakad fil eller sökväg. |
| UniqueId |
Hämtar en identifierare för den HostFileChangeMonitor instans som baseras på uppsättningen övervakade kataloger och filsökvägar. |
Metoder
| Name | Description |
|---|---|
| Dispose() |
Frigör alla resurser som används av den aktuella instansen ChangeMonitor av klassen. (Ärvd från ChangeMonitor) |
| Dispose(Boolean) |
Släpper alla hanterade och ohanterade resurser och eventuella referenser till instansen ChangeMonitor . Den här överlagringen måste implementeras av härledda ändringsövervakarklasser. (Ärvd från ChangeMonitor) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializationComplete() |
Anropas från konstruktorn för härledda klasser för att indikera att initieringen är klar. (Ärvd från ChangeMonitor) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| NotifyOnChanged(OnChangedCallback) |
Anropas av Cache-implementerare för att registrera ett återanrop och meddela en ObjectCache instans via ombudet OnChangedCallback när ett beroende har ändrats. (Ärvd från ChangeMonitor) |
| OnChanged(Object) |
Anropas av härledda klasser för att generera händelsen när ett beroende ändras. (Ärvd från ChangeMonitor) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |