HostFileChangeMonitor 클래스

정의

디렉터리 및 파일 경로를 모니터링하고 모니터링된 항목의 변경 내용을 캐시에 알립니다. 이 클래스는 상속될 수 없습니다.

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
상속
HostFileChangeMonitor

예제

다음 예제에서는 사용 하는 캐시 항목을 HostFileChangeMonitor 파일 시스템에 원본 데이터 (즉, 파일)의 상태를 모니터링 하는 개체입니다. 캐시 엔트리를 사용 하 여 정의 된를 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

설명

합니다 HostFileChangeMonitor 클래스의 구체적인 구현인는 FileChangeMonitor 형식입니다. 이 클래스는 봉인, 따라서 확장할 수 없습니다. 이 클래스는 기존 캐시 구현을 사용 하 고 파일 및 디렉터리의 변경 사항 모니터링 하려는 경우에 유용 합니다.

각 지정 된 파일이 나 디렉터리 경로 HostFileChangeMonitor 클래스는 다음과 같이 변경 중 하나가 발생할 경우 변경 알림을 트리거합니다.

  • 디렉터리 변경 내용 모니터링 되는 파일의 이름입니다.

  • 지정 된 파일 또는 디렉터리 모니터 생성 되었지만 나중에 만들어진 시 존재 하지 않았습니다. 즉, 파일 또는 디렉터리를 모니터링된 하는 항목의 범위에서 만들어졌습니다.

  • 모니터링 되는 파일의 크기를 변경 합니다.

  • 모니터링 되는 파일의 내용을 변경 되거나 모니터링 되는 디렉터리의 내용을 변경 합니다.

  • 파일 또는 디렉터리의 액세스 제어 목록 (ACL) 변경 되었습니다.

  • 모니터링 되는 파일 또는 디렉터리 삭제 되었습니다.

동시에 모니터링 되는 파일 또는 디렉터리에 대 한 너무 많은 변경이 발생 하는 경우는 HostFileChangeMonitor 인스턴스 특정 변경 내용 추적할 수 없게 됩니다. 이 시나리오에서는 HostFileChangeMonitor 클래스 변경 알림을 트리거합니다. 이 시나리오는 발생할 가능성이 때는 HostFileChangeMonitor 인스턴스 디렉터리를 모니터링 하 고 짧은 기간에는 디렉터리 구조체의 범위에서 많은 변경이 발생 합니다.

때문에의 용도 HostFileChangeMonitor 클래스만 알리는 것 모니터링 대상 파일과 디렉터리의 집합에서 변경 된 내용이 중요 한 특정 변경 내용 자세히 캡처되지 않는 간주 되지 않습니다. 용도 HostFileChangeMonitor 클래스 엔트리를 캐시 (또는 항목)가 제거 될 수 있도록 해당 상태 알림 변경를 제공 하는 것입니다. 때문에 HostFileChangeMonitor 클래스 변경 내용을 정확 하 게 나타내지 않습니다, 내부 변경 내용 추적 오버플로 관련이 없습니다.

에 대 한 경로 제공 하는 경우는 HostFileChangeMonitor 인스턴스, 디렉터리 및 파일 경로 디렉터리 또는 파일에 전체 경로 여야 합니다. 상대 경로 및 경로에 와일드 카드 문자 허용 되지 않습니다.

경우는 HostFileChangeMonitor 모니터링된 항목에 대 한 액세스에 사용 되는 Windows id가 ASP.NET 애플리케이션에 대 한 애플리케이션 id, 클래스는 ASP.NET 애플리케이션에서 사용 됩니다. 즉, 애플리케이션 id 중 하나로 설정 됩니다.

  • 프로세스 id입니다.

  • 구성 된 애플리케이션 id입니다.

  • UNC 자격 증명 UNC 공유에서 애플리케이션이 실행 됩니다.

경우는 HostFileChangeMonitor 클래스는 ASP.NET 이외의 애플리케이션에서 사용 됩니다는 FileSystemWatcher 클래스 파일을 모니터링 하는 데 내부적으로 사용 됩니다. 결과적으로, 모니터링 되는 파일 또는 디렉터리에 적용 되는 모든 ACL (액세스 제어 목록)는 현재 스레드의 Windows id에 적용 됩니다.

참고

호출자는 적절 한 수준의 코드 액세스 보안 (CA) 권한이 있어야 합니다. 및 모니터링 되는 모든 디렉터리 및 경로 대 한 NTFS 권한이 있어야 합니다.

생성자

HostFileChangeMonitor(IList<String>)

HostFileChangeMonitor 클래스의 새 인스턴스를 초기화합니다.

속성

FilePaths

HostFileChangeMonitor(IList<String>) 생성자에 전달된 디렉터리 및 파일 경로 컬렉션을 가져옵니다.

HasChanged

ChangeMonitor 클래스에서 모니터링하는 상태가 변경되었음을 나타내는 값을 가져옵니다.

(다음에서 상속됨 ChangeMonitor)
IsDisposed

ChangeMonitor 클래스의 파생 인스턴스가 삭제되었는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 ChangeMonitor)
LastModified

모니터링되는 파일 또는 경로를 마지막으로 쓴 시간을 나타내는 읽기 전용 값을 가져옵니다.

UniqueId

모니터링된 디렉터리 및 파일 경로 집합을 기반으로 하는 HostFileChangeMonitor 인스턴스의 식별자를 가져옵니다.

메서드

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)

적용 대상