HostFileChangeMonitor Sınıf

Tanım

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
HostFileChangeMonitor

Ö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)

Şunlara uygulanır