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
- Наследование
- Производный
Примеры
В следующем примере показано, как создать элемент кэша, который использует 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) |