FileChangeMonitor Class

.NET Framework (current version)
 

Represents an object that monitors changes to files.

Namespace:   System.Runtime.Caching
Assembly:  System.Runtime.Caching (in System.Runtime.Caching.dll)

System.Object
  System.Runtime.Caching.ChangeMonitor
    System.Runtime.Caching.FileChangeMonitor
      System.Runtime.Caching.HostFileChangeMonitor

public abstract class FileChangeMonitor : ChangeMonitor

NameDescription
System_CAPS_protmethodFileChangeMonitor()

Initializes a new instance of the FileChangeMonitor class. This constructor is called from constructors in derived classes in order to initialize the base class.

NameDescription
System_CAPS_pubpropertyFilePaths

Gets a collection that contains the paths of files that are monitored for changes.

System_CAPS_pubpropertyHasChanged

Gets a value that indicates that the state that is monitored by the ChangeMonitor class has changed.(Inherited from ChangeMonitor.)

System_CAPS_pubpropertyIsDisposed

Gets a value that indicates that the derived instance of a ChangeMonitor class is disposed.(Inherited from ChangeMonitor.)

System_CAPS_pubpropertyLastModified

Gets a value that indicates the last time that a file that is being monitored was changed.

System_CAPS_pubpropertyUniqueId

Gets a value that represents the ChangeMonitor class instance.(Inherited from ChangeMonitor.)

NameDescription
System_CAPS_pubmethodDispose()

Releases all resources that are used by the current instance of the ChangeMonitor class.(Inherited from ChangeMonitor.)

System_CAPS_protmethodDispose(Boolean)

Releases all managed and unmanaged resources and any references to the ChangeMonitor instance. This overload must be implemented by derived change-monitor classes. (Inherited from ChangeMonitor.)

System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodInitializationComplete()

Called from the constructor of derived classes to indicate that initialization is finished. (Inherited from ChangeMonitor.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodNotifyOnChanged(OnChangedCallback)

Called by Cache implementers to register a callback and notify an ObjectCache instance through the OnChangedCallback delegate when a dependency has changed. (Inherited from ChangeMonitor.)

System_CAPS_protmethodOnChanged(Object)

Called by derived classes to raise the event when a dependency changes. (Inherited from ChangeMonitor.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

The FileChangeMonitor class is a base ChangeMonitor type for classes that monitor changes to files. To create a monitor for changes in the file system, you can inherit from this class.

Notes to Inheritors:

For information about the inheritance contract that must be followed, see the Notes for Inheritors section in the ChangeMonitor class overview.

The following example shows how to create a cache item that uses a HostFileChangeMonitor object to monitor the state of the source data (a file) on the file system. The HostFileChangeMonitor class inherits from the FileChangeMonitor class. The cache entry is defined using a CacheItemPolicy object that provides eviction and expiration details for the cache entry.

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;
    }
}

.NET Framework
Available since 4.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: