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ını 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 değişiklikler için dosya ve dizinleri izlemek istiyorsanız kullanışlıdır.
Belirtilen her dosya veya dizin yolu için, HostFileChangeMonitor aşağıdaki değişikliklerden herhangi 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 bir dosyanın içeriği veya izlenen dizinin içeriği değiştirildi.
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ı bir HostFileChangeMonitor değişiklik bildirimi tetikler. Bu senaryo, örnek bir dizini izlediğinde ve dizin yapısı kapsamında kısa bir süre içinde birçok değişiklik gerçekleştiğinde gerçekleşme HostFileChangeMonitor olasılığı daha yüksektir.
sınıfının amacı HostFileChangeMonitor yalnızca izlenen dosya ve dizin 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 girdilerinin) çıkarılabilmesi için durumun değiştiğini belirten bir 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.
ASP.NET bir uygulamada HostFileChangeMonitor sınıfı 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ı ASP.NET olmayan bir uygulamada kullanıldığında, dosyaları izlemek için dahili olarak FileSystemWatcher sınıfı kullanılır. Sonuç olarak, izlenen bir dosya veya dizin için hangi erişim denetimi listesi (ACL) geçerli iş parçacığının Windows kimliğine uygulanır.
Note
Çağıranların uygun kod erişim güvenliği (CAS) izinlerine sahip olması ve tüm izlenen dizinler ve yollar için NTFS izinlerine sahip olması gerekir.
Oluşturucular
| Name | Description |
|---|---|
| HostFileChangeMonitor(IList<String>) |
HostFileChangeMonitor sınıfının yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| 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 gösteren bir değer alır. (Devralındığı yer: ChangeMonitor) |
| IsDisposed |
Bir sınıfın türetilmiş örneğinin atıldığını gösteren 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
| Name | Description |
|---|---|
| Dispose() |
Sınıfı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 yapılan ChangeMonitor 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() |
Geçerli örneğin Type 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 Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| NotifyOnChanged(OnChangedCallback) |
Önbellek uygulayıcıları tarafından bir geri çağırma kaydetmek ve bir bağımlılık değiştiğinde ObjectCache temsilci aracılığıyla bir OnChangedCallback örneği bilgilendirmek için çağrılır. (Devralındığı yer: ChangeMonitor) |
| OnChanged(Object) |
Bir bağımlılık değiştiğinde olayı yükseltmek için türetilmiş sınıflar tarafından çağrılır. (Devralındığı yer: ChangeMonitor) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |