HostFileChangeMonitor Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Dizinleri ve dosya yollarını izler ve izlenen öğelerdeki değişikliklerin önbelleğini bildirir. Bu sınıf devralınamaz.
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
- Devralma
Örnekler
Aşağıdaki örnek, dosya sistemindeki kaynak verilerin (bir dosya) durumunu izlemek için bir HostFileChangeMonitor nesne kullanan bir önbellek öğesi oluşturur. Önbellek girdisi, önbellek girdisi için çıkarma ve süre sonu ayrıntıları sağlamak üzere bir CacheItemPolicy nesne kullanılarak tanımlanır.
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
Açıklamalar
HostFileChangeMonitor sınıfı, türünün somut bir uygulamasıdırFileChangeMonitor. Bu sınıf korumalı olduğundan genişletilemez. Bu sınıf, mevcut bir önbellek uygulamasını kullanmak ve dosya ve dizinleri değişiklikler için izlemek istiyorsanız kullanışlıdır.
Belirtilen her dosya veya dizin yolu için, HostFileChangeMonitor aşağıdaki değişikliklerden biri gerçekleşirse sınıfı bir değişiklik bildirimi tetikler:
İzlenen dosyanın veya dizinin adı değişir.
Belirtilen dosya veya dizin izleyici oluşturulduğu sırada mevcut değildi, ancak daha sonra oluşturuldu. Başka bir deyişle, izlenen öğeler kapsamında bir dosya veya dizin oluşturulmuştur.
İzlenen dosyanın boyutu değişti.
İzlenen dosyanın içeriği değiştirildi veya izlenen dizinin içeriği değişti.
Dosya veya dizinin erişim denetim listesi (ACL) değiştirildi.
İzlenen dosya veya dizin silindi.
İzlenen dosya veya dizin için aynı anda çok fazla değişiklik olursa, HostFileChangeMonitor örnek belirli değişiklikleri izleyebilir. Bu senaryoda sınıfı HostFileChangeMonitor bir değişiklik bildirimi tetikler. Bu senaryo, örnek bir dizini izlediğinde ve dizin yapısının kapsamında kısa bir süre içinde birçok değişiklik gerçekleştiğinde daha HostFileChangeMonitor olasıdır.
sınıfının amacı HostFileChangeMonitor yalnızca izlenen dosyalar ve dizinler kümesi arasında bir şeyin değiştiğinin sinyalini vermek olduğundan, belirli bir değişiklikle ilgili ayrıntıların yakalanmaması önemli kabul edilmez. sınıfının amacı, bir önbellek girişinin HostFileChangeMonitor (veya girişlerin) çıkarılabilmesi için durumun değiştiğine dair bildirim sağlamaktır. HostFileChangeMonitor Sınıfı tam olarak nelerin değiştiğini belirtmediğinden, iç değişiklik izleme taşması ilgisizdir.
Bir HostFileChangeMonitor örneğe yol sağladığınızda, dizin ve dosya yolları dizin veya dosyanın tam yolları olmalıdır. Yollardaki göreli yollara ve joker karakterlere izin verilmez.
HostFileChangeMonitor sınıfı bir ASP.NET uygulamasında kullanıldığında, izlenen öğelere erişim için kullanılan Windows kimliği, ASP.NET uygulamanın uygulama kimliğidir. Başka bir deyişle, uygulama kimliği aşağıdakilerden biri olacaktır:
İşlem kimliği.
Yapılandırılan uygulama kimliği.
Uygulama bir UNC paylaşımından çalışıyorsa UNC kimlik bilgisi.
HostFileChangeMonitor sınıf bir non-ASP.NET uygulamasında kullanıldığında, FileSystemWatcher dosyaları izlemek için dahili olarak kullanılır. Sonuç olarak, izlenen bir dosya veya dizin için geçerli erişim denetim listesi (ACL) geçerli iş parçacığının Windows kimliğine uygulanır.
Not
Çağıranların uygun kod erişim güvenliği (CAS) izinlerine sahip olması ve tüm izlenen dizinler ve yollar üzerinde NTFS izinlerine sahip olması gerekir.
Oluşturucular
HostFileChangeMonitor(IList<String>) |
HostFileChangeMonitor sınıfının yeni bir örneğini başlatır. |
Özellikler
FilePaths |
Oluşturucuya geçirilen dizinlerin ve dosya yollarının HostFileChangeMonitor(IList<String>) koleksiyonunu alır. |
HasChanged |
Sınıfı tarafından ChangeMonitor izlenen durumun değiştiğini belirten bir değer alır. (Devralındığı yer: ChangeMonitor) |
IsDisposed |
Bir sınıfın türetilmiş örneğinin atıldığını belirten bir ChangeMonitor değer alır. (Devralındığı yer: ChangeMonitor) |
LastModified |
İzlenen dosyanın veya yolun son yazma zamanını gösteren salt okunur bir değer alır. |
UniqueId |
İzlenen dizinler ve dosya yolları kümesini temel alan örneğin tanımlayıcısını HostFileChangeMonitor alır. |
Yöntemler
Dispose() |
Sınıfının geçerli örneği ChangeMonitor tarafından kullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: ChangeMonitor) |
Dispose(Boolean) |
Yönetilen ve yönetilmeyen tüm kaynakları ve örneğe ChangeMonitor yapılan başvuruları serbest bırakır. Bu aşırı yükleme türetilmiş değişiklik izleyici sınıfları tarafından uygulanmalıdır. (Devralındığı yer: ChangeMonitor) |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
InitializationComplete() |
Başlatmanın tamamlandığını belirtmek için türetilmiş sınıfların oluşturucusundan çağrılır. (Devralındığı yer: ChangeMonitor) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
NotifyOnChanged(OnChangedCallback) |
Bir geri çağırmayı kaydetmek ve bir bağımlılık değiştiğinde OnChangedCallback temsilci aracılığıyla bir ObjectCache örneği bilgilendirmek için Önbellek uygulayıcıları tarafından çağrılır. (Devralındığı yer: ChangeMonitor) |
OnChanged(Object) |
Bir bağımlılık değiştiğinde olayı tetikmek için türetilmiş sınıflar tarafından çağrılır. (Devralındığı yer: ChangeMonitor) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |