HostFileChangeMonitor Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Controleert mappen en bestandspaden en meldt de cache met wijzigingen in de bewaakte items. Deze klasse kan niet worden overgenomen.
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
- Overname
Voorbeelden
In het volgende voorbeeld wordt een cache-item gemaakt dat gebruikmaakt van een HostFileChangeMonitor object om de status van de brongegevens (een bestand) in het bestandssysteem te bewaken. De cachevermelding wordt gedefinieerd met behulp van een CacheItemPolicy object om verwijderings- en verloopdetails voor de cachevermelding op te geven.
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
Opmerkingen
De HostFileChangeMonitor klasse is een concrete implementatie van het FileChangeMonitor type. Deze klasse is verzegeld en kan daarom niet worden uitgebreid. Deze klasse is handig als u een bestaande cache-implementatie wilt gebruiken en bestanden en mappen wilt controleren op wijzigingen.
Voor elk opgegeven bestand of mappad activeert de HostFileChangeMonitor klasse een wijzigingsmelding als een van de volgende wijzigingen optreedt:
De naam van het bewaakte bestand of de bewaakte map wordt gewijzigd.
Het opgegeven bestand of de opgegeven map bestond niet op het moment dat de monitor werd gemaakt, maar is later gemaakt. Met andere woorden, er is een bestand of map gemaakt in het bereik van de bewaakte items.
De grootte van een bewaakt bestand is gewijzigd.
De inhoud van een bewaakt bestand is gewijzigd of de inhoud van een bewaakte map is gewijzigd.
De toegangsbeheerlijst (ACL) van het bestand of de map is gewijzigd.
Het bewaakte bestand of de bewaakte map is verwijderd.
Als er te veel wijzigingen optreden voor het bewaakte bestand of de bewaakte map tegelijkertijd, kan het HostFileChangeMonitor exemplaar specifieke wijzigingen bijhouden. In dit scenario activeert de HostFileChangeMonitor klasse een wijzigingsmelding. Dit scenario is waarschijnlijker wanneer het HostFileChangeMonitor exemplaar een map bewaakt en er in een korte periode veel wijzigingen optreden in het bereik van de mapstructuur.
Omdat het doel van de HostFileChangeMonitor klasse alleen is om aan te geven dat er iets is gewijzigd in de set bewaakte bestanden en mappen, wordt het niet als belangrijk beschouwd dat details over een specifieke wijziging niet worden vastgelegd. Het doel van de HostFileChangeMonitor klasse is om een melding te geven dat de status is gewijzigd, zodat een cachevermelding (of vermeldingen) kan worden verwijderd. Omdat de HostFileChangeMonitor klasse niet precies aangeeft wat er is gewijzigd, is het bijhouden van interne wijzigingen niet relevant.
Wanneer u paden naar een HostFileChangeMonitor exemplaar opgeeft, moeten de map- en bestandspaden volledige paden naar de map of het bestand zijn. Relatieve paden en jokertekens in paden zijn niet toegestaan.
Wanneer de klasse HostFileChangeMonitor wordt gebruikt in een ASP.NET-toepassing, is de Windows-identiteit die wordt gebruikt voor toegang tot bewaakte items de toepassingsidentiteit voor de ASP.NET-toepassing. Met andere woorden: de toepassingsidentiteit is een van de volgende:
De procesidentiteit.
De geconfigureerde toepassingsidentiteit.
De UNC-referentie als de toepassing wordt uitgevoerd vanaf een UNC-share.
Wanneer de klasse HostFileChangeMonitor wordt gebruikt in een niet-ASP.NET toepassing, wordt de klasse FileSystemWatcher intern gebruikt om bestanden te bewaken. Als gevolg hiervan wordt elke toegangsbeheerlijst (ACL) toegepast op een bewaakt bestand of map op de Windows identiteit van de huidige thread.
Note
Bellers moeten beschikken over het juiste niveau van CAS-machtigingen (Code Access Security) en moeten NTFS-machtigingen hebben voor alle bewaakte mappen en paden.
Constructors
| Name | Description |
|---|---|
| HostFileChangeMonitor(IList<String>) |
Initialiseert een nieuw exemplaar van de HostFileChangeMonitor klasse. |
Eigenschappen
| Name | Description |
|---|---|
| FilePaths |
Hiermee haalt u de verzameling mappen en bestandspaden op die aan de HostFileChangeMonitor(IList<String>) constructor zijn doorgegeven. |
| HasChanged |
Hiermee wordt een waarde opgehaald die aangeeft dat de status die wordt bewaakt door de ChangeMonitor klasse is gewijzigd. (Overgenomen van ChangeMonitor) |
| IsDisposed |
Hiermee wordt een waarde opgehaald die aangeeft dat het afgeleide exemplaar van een ChangeMonitor klasse wordt verwijderd. (Overgenomen van ChangeMonitor) |
| LastModified |
Hiermee wordt een alleen-lezenwaarde opgehaald die de laatste schrijftijd van een bewaakt bestand of pad aangeeft. |
| UniqueId |
Hiermee haalt u een id op voor het HostFileChangeMonitor exemplaar dat is gebaseerd op de set bewaakte mappen en bestandspaden. |
Methoden
| Name | Description |
|---|---|
| Dispose() |
Publiceert alle resources die worden gebruikt door het huidige exemplaar van de ChangeMonitor klasse. (Overgenomen van ChangeMonitor) |
| Dispose(Boolean) |
Alle beheerde en onbeheerde resources en eventuele verwijzingen naar het ChangeMonitor exemplaar worden vrijgegeven. Deze overbelasting moet worden geïmplementeerd door afgeleide wijzigingsmonitorklassen. (Overgenomen van ChangeMonitor) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializationComplete() |
Aangeroepen vanuit de constructor van afgeleide klassen om aan te geven dat initialisatie is voltooid. (Overgenomen van ChangeMonitor) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| NotifyOnChanged(OnChangedCallback) |
Door cache-implementeerfuncties aangeroepen om een callback te registreren en een ObjectCache exemplaar via de gemachtigde op de OnChangedCallback hoogte te stellen wanneer een afhankelijkheid is gewijzigd. (Overgenomen van ChangeMonitor) |
| OnChanged(Object) |
Aangeroepen door afgeleide klassen om de gebeurtenis te verhogen wanneer een afhankelijkheid verandert. (Overgenomen van ChangeMonitor) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |