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)

适用于