Поделиться через


FileChangeMonitor Класс

Определение

Представляет объект, отслеживающий изменения файлов.

public ref class FileChangeMonitor abstract : System::Runtime::Caching::ChangeMonitor
public abstract class FileChangeMonitor : System.Runtime.Caching.ChangeMonitor
type FileChangeMonitor = class
    inherit ChangeMonitor
Public MustInherit Class FileChangeMonitor
Inherits ChangeMonitor
Наследование
FileChangeMonitor
Производный

Примеры

В следующем примере показано, как создать элемент кэша, который использует HostFileChangeMonitor объект для мониторинга состояния исходных данных (файла) в файловой системе. Класс HostFileChangeMonitor наследуется от класса FileChangeMonitor. Запись кэша определяется с помощью CacheItemPolicy объекта , который предоставляет сведения о вытеснениях и истечении срока действия для записи кэша.

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

Комментарии

Класс FileChangeMonitor является базовым ChangeMonitor типом для классов, которые отслеживают изменения в файлах. Чтобы создать монитор для изменений в файловой системе, можно наследовать от этого класса.

Примечания для тех, кто реализует этот метод

Сведения о контракте наследования, которому необходимо следовать, см. в разделе Примечания для наследующих в обзоре ChangeMonitor класса.

Конструкторы

FileChangeMonitor()

Инициализирует новый экземпляр класса FileChangeMonitor. Этот конструктор вызывается из конструкторов в производных классах для инициализации базового класса.

Свойства

FilePaths

Получает коллекцию, содержащую пути к файлам, изменения которых отслеживаются.

HasChanged

Получает значение, указывающее, что состояние, отслеживаемое классом ChangeMonitor, изменилось.

(Унаследовано от ChangeMonitor)
IsDisposed

Получает значение, указывающее, что производный экземпляр класса ChangeMonitor удален.

(Унаследовано от ChangeMonitor)
LastModified

Получает значение, указывающее на время последнего изменения отслеживаемого файла.

UniqueId

Получает значение, представляющее экземпляр класса ChangeMonitor.

(Унаследовано от ChangeMonitor)

Методы

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса ChangeMonitor.

(Унаследовано от ChangeMonitor)
Dispose(Boolean)

Освобождает все управляемые и неуправляемые ресурсы и все ссылки на экземпляр ChangeMonitor. Эту перегрузку необходимо реализовывать в производных классах, контролирующих изменения.

(Унаследовано от ChangeMonitor)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializationComplete()

Вызывается из конструктора производных классов и указывает на завершение инициализации.

(Унаследовано от ChangeMonitor)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
NotifyOnChanged(OnChangedCallback)

Вызывается средствами реализации кэша для регистрации обратного вызова и уведомления экземпляра ObjectCache об изменении зависимости с использованием делегата OnChangedCallback.

(Унаследовано от ChangeMonitor)
OnChanged(Object)

Вызывается производными классами для создания события при изменении зависимости.

(Унаследовано от ChangeMonitor)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к