Aracılığıyla paylaş


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

Şunlara uygulanır