Bagikan melalui


HostFileChangeMonitor Kelas

Definisi

Memantau direktori dan jalur file dan memberi tahu cache perubahan pada item yang dipantau. Kelas ini tidak dapat diwariskan.

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
Warisan
HostFileChangeMonitor

Contoh

Contoh berikut membuat item cache yang menggunakan HostFileChangeMonitor objek untuk memantau status data sumber (yang merupakan file) pada sistem file. Entri cache didefinisikan menggunakan CacheItemPolicy objek untuk memberikan detail pengeluaran dan kedaluwarsa untuk entri cache.

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

Keterangan

Kelas HostFileChangeMonitor adalah implementasi konkret dari jenis .FileChangeMonitor Kelas ini disegel, oleh karena itu tidak dapat diperpanjang. Kelas ini berguna jika Anda ingin menggunakan implementasi cache yang ada dan untuk memantau file dan direktori untuk perubahan.

Untuk setiap file atau jalur direktori yang ditentukan, HostFileChangeMonitor kelas memicu pemberitahuan perubahan jika salah satu perubahan berikut terjadi:

  • Nama file atau direktori yang dipantau berubah.

  • File atau direktori yang ditentukan tidak ada pada saat monitor dibuat, tetapi dibuat nanti. Dengan kata lain, file atau direktori dibuat dalam lingkup item yang dipantau.

  • Ukuran file yang dipantau berubah.

  • Konten file yang dipantau berubah, atau konten direktori yang dipantau berubah.

  • Daftar kontrol akses (ACL) file atau direktori diubah.

  • File atau direktori yang dipantau telah dihapus.

Jika terlalu banyak perubahan terjadi untuk file atau direktori yang dipantau secara bersamaan, HostFileChangeMonitor instans dapat kehilangan jejak perubahan tertentu. Dalam skenario ini, HostFileChangeMonitor kelas memicu pemberitahuan perubahan. Skenario ini lebih mungkin terjadi ketika HostFileChangeMonitor instans memantau direktori, dan banyak perubahan terjadi dalam cakupan struktur direktori dalam waktu singkat.

Karena tujuan kelas HostFileChangeMonitor hanya untuk memberi sinyal bahwa sesuatu telah berubah di antara set file dan direktori yang dipantau, tidak dianggap penting bahwa detail tentang perubahan tertentu tidak ditangkap. Tujuan kelas HostFileChangeMonitor adalah untuk memberikan pemberitahuan bahwa status berubah sehingga entri cache (atau entri) dapat dikeluarkan. HostFileChangeMonitor Karena kelas tidak menunjukkan dengan tepat apa yang berubah, luapan pelacakan perubahan internal tidak relevan.

Saat Anda menyediakan jalur ke HostFileChangeMonitor instans, jalur direktori dan file harus jalur lengkap ke direktori atau file. Jalur relatif dan karakter kartubebas di jalur tidak diperbolehkan.

HostFileChangeMonitor Ketika kelas digunakan dalam aplikasi ASP.NET, identitas Windows yang digunakan untuk akses ke item yang dipantau adalah identitas aplikasi untuk aplikasi ASP.NET. Dengan kata lain, identitas aplikasi akan menjadi salah satu hal berikut:

  • Identitas proses.

  • Identitas aplikasi yang dikonfigurasi.

  • Kredensial UNC jika aplikasi berjalan dari berbagi UNC.

HostFileChangeMonitor Ketika kelas digunakan dalam aplikasi non-ASP.NET, FileSystemWatcher kelas digunakan secara internal untuk memantau file. Akibatnya, daftar kontrol akses (ACL) apa pun yang berlaku untuk file atau direktori yang dipantau diterapkan ke identitas Windows dari utas saat ini.

Catatan

Penelepon harus memiliki tingkat izin keamanan akses kode (CAS) yang sesuai dan harus memiliki izin NTFS ke semua direktori dan jalur yang dipantau.

Konstruktor

HostFileChangeMonitor(IList<String>)

Menginisialisasi instans baru kelas HostFileChangeMonitor.

Properti

FilePaths

Mendapatkan kumpulan direktori dan jalur file yang diteruskan ke HostFileChangeMonitor(IList<String>) konstruktor.

HasChanged

Mendapatkan nilai yang menunjukkan bahwa status yang dipantau oleh ChangeMonitor kelas telah berubah.

(Diperoleh dari ChangeMonitor)
IsDisposed

Mendapatkan nilai yang menunjukkan bahwa instans turunan dari ChangeMonitor kelas dibuang.

(Diperoleh dari ChangeMonitor)
LastModified

Mendapatkan nilai baca-saja yang menunjukkan waktu tulis terakhir file atau jalur yang dipantau.

UniqueId

Mendapatkan pengidentifikasi untuk HostFileChangeMonitor instans yang didasarkan pada kumpulan direktori dan jalur file yang dipantau.

Metode

Dispose()

Merilis semua sumber daya yang digunakan oleh instans ChangeMonitor kelas saat ini.

(Diperoleh dari ChangeMonitor)
Dispose(Boolean)

Merilis semua sumber daya terkelola dan tidak terkelola dan referensi apa pun ke ChangeMonitor instans. Kelebihan beban ini harus diimplementasikan oleh kelas monitor perubahan turunan.

(Diperoleh dari ChangeMonitor)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
InitializationComplete()

Dipanggil dari konstruktor kelas turunan untuk menunjukkan bahwa inisialisasi selesai.

(Diperoleh dari ChangeMonitor)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
NotifyOnChanged(OnChangedCallback)

Dipanggil oleh pelaksana Cache untuk mendaftarkan panggilan balik dan memberi tahu ObjectCache instans melalui OnChangedCallback delegasi ketika dependensi telah berubah.

(Diperoleh dari ChangeMonitor)
OnChanged(Object)

Dipanggil oleh kelas turunan untuk meningkatkan peristiwa saat dependensi berubah.

(Diperoleh dari ChangeMonitor)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk