HostFileChangeMonitor 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디렉터리 및 파일 경로를 모니터링하고 모니터링되는 항목에 대한 변경 내용을 캐시에 알립니다. 이 클래스는 상속할 수 없습니다.
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 캐시 항목을 만듭니다. 캐시 항목은 캐시 항목에 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 대한 경로를 제공하는 경우 디렉터리 및 파일 경로는 디렉터리 또는 파일에 대한 전체 경로여야 합니다. 경로의 상대 경로 및 와일드카드 문자는 허용되지 않습니다.
ASP.NET 애플리케이션에서 HostFileChangeMonitor 클래스를 사용하는 경우 모니터링되는 항목에 액세스하는 데 사용되는 Windows ID는 ASP.NET 애플리케이션의 애플리케이션 ID입니다. 즉, 애플리케이션 ID는 다음 중 하나입니다.
프로세스 ID입니다.
구성된 애플리케이션 ID입니다.
애플리케이션이 UNC 공유에서 실행되는 경우 UNC 자격 증명입니다.
비 ASP.NET 애플리케이션에서 HostFileChangeMonitor 클래스를 사용하는 경우 FileSystemWatcher 클래스는 내부적으로 파일을 모니터링하는 데 사용됩니다. 따라서 모니터링되는 파일 또는 디렉터리에 적용되는 ACL(액세스 제어 목록)은 현재 스레드의 Windows ID에 적용됩니다.
메모
호출자는 적절한 수준의 CAS(코드 액세스 보안) 권한이 있어야 하며 모니터링되는 모든 디렉터리 및 경로에 대한 NTFS 권한이 있어야 합니다.
생성자
| Name | Description |
|---|---|
| HostFileChangeMonitor(IList<String>) |
HostFileChangeMonitor 클래스의 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| FilePaths |
생성자에 전달된 디렉터리 및 파일 경로의 HostFileChangeMonitor(IList<String>) 컬렉션을 가져옵니다. |
| HasChanged |
클래스에서 모니터링하는 상태가 변경되었음을 ChangeMonitor 나타내는 값을 가져옵니다. (다음에서 상속됨 ChangeMonitor) |
| IsDisposed |
클래스의 ChangeMonitor 파생 인스턴스가 삭제되었음을 나타내는 값을 가져옵니다. (다음에서 상속됨 ChangeMonitor) |
| LastModified |
모니터링된 파일 또는 경로의 마지막 쓰기 시간을 나타내는 읽기 전용 값을 가져옵니다. |
| UniqueId |
모니터링되는 디렉터리 및 파일 경로 집합을 기반으로 하는 인스턴스의 식별자를 HostFileChangeMonitor 가져옵니다. |
메서드
| Name | Description |
|---|---|
| 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) |