다음을 통해 공유


Cache 클래스

정의

웹 애플리케이션에 대한 캐시를 구현합니다. 이 클래스는 상속될 수 없습니다.

public ref class Cache sealed : System::Collections::IEnumerable
public sealed class Cache : System.Collections.IEnumerable
type Cache = class
    interface IEnumerable
Public NotInheritable Class Cache
Implements IEnumerable
상속
Cache
구현

예제

다음 예제는 캐시의 항목에 할당된 값을 사용자에게 표시한 다음, 캐시에서 항목이 제거될 때 사용자에게 알리는 페이지입니다. 캐시 항목이 제거될 때 사용자에게 알리기 위해 대리자의 CacheItemRemovedCallback 서명이 있는 메서드를 만들고 RemovedCallback 열거형을 사용하여 CacheItemRemovedReason 제거된 이유를 알려줍니다. 또한에서는 Cache.Item[] 속성 캐시에 개체를 추가 하 고 해당 개체의 값을 검색 합니다. 에 AddItemToCache 메서드를 사용 하 여는 Cache.Add 캐시에 항목을 추가 하는 방법입니다. 대리자를 CacheItemRemovedCallback 사용하려면 항목을 제거할 때 ASP.NET 자동으로 적절한 메서드 호출을 수행할 수 있도록 이 메서드 또는 Cache.Insert 메서드를 사용하여 캐시에 항목을 추가해야 합니다. 사용자 지정 RemoveItemFromCache 메서드를 Cache.Remove 메서드를 명시적으로 캐시에서 항목을 삭제 발생는 RemovedCallback 메서드를 호출할 수 있습니다.

참고

아래 코드 조각에서 액세스하는 Cache 인스턴스는 이 샘플이 상속하는 개체의 Page 멤버입니다.

<html>
 <Script runat=server language="C#">
// <snippet2>
    static bool itemRemoved = false;
    static CacheItemRemovedReason reason;
    CacheItemRemovedCallback onRemove = null;

    public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){
      itemRemoved = true;
      reason = r;
    }
// </snippet2>

// <snippet3>
    public void AddItemToCache(Object sender, EventArgs e) {
        itemRemoved = false;

        onRemove = new CacheItemRemovedCallback(this.RemovedCallback);

        if (Cache["Key1"] == null)
          Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
    }
// </snippet3>

// <snippet4>
    public void RemoveItemFromCache(Object sender, EventArgs e) {
        if(Cache["Key1"] != null)
          Cache.Remove("Key1");
    }
// </snippet4>
 </Script>
 <body>
  <Form runat="server">
   <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
   <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
  <% if (itemRemoved) {
        Response.Write("RemovedCallback event raised.");
        Response.Write("<BR>");
        Response.Write("Reason: <B>" + reason.ToString() + "</B>");
     }
     else {
// <snippet5>
        Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
// </snippet5>
     }
  %>
 </body>
</html>
<%@ Page Language="VB" %>

<html>
 <Script runat=server>
' <snippet2>
    Shared itemRemoved As boolean = false
    Shared reason As CacheItemRemovedReason
    Dim onRemove As CacheItemRemovedCallback

    Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason)
      itemRemoved = true
      reason = r
    End Sub
' </snippet2>

' <snippet3>
    Public Sub AddItemToCache(sender As Object, e As EventArgs)
        itemRemoved = false

        onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

        If (IsNothing(Cache("Key1"))) Then
          Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove)
        End If
    End Sub
' </snippet3>

' <snippet4>
    Public Sub RemoveItemFromCache(sender As Object, e As EventArgs)
        If (Not IsNothing(Cache("Key1"))) Then
          Cache.Remove("Key1")
        End If
    End Sub
' </snippet4>
 </Script>

 <body>
  <Form runat="server">
    <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
    <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
<%
If (itemRemoved) Then
    Response.Write("RemovedCallback event raised.")
    Response.Write("<BR>")
    Response.Write("Reason: <B>" + reason.ToString() + "</B>")
Else
' <snippet5>
    Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>")
' </snippet5>
End If
%>
 </body>
</html>

설명

애플리케이션 도메인 별로이 클래스의 인스턴스가 하나씩 만들어지고 해당 상태로 유효한 애플리케이션 도메인을 활성 상태로 유지 됩니다. 이 클래스의 인스턴스에 대한 정보는 개체의 속성 또는 Cache 개체의 PageHttpContext 속성을 통해 Cache 사용할 수 있습니다.

참고

Cache ASP.NET 애플리케이션 외부에서 사용 하기 위해 클래스는 없습니다. 디자인 되 고 웹 애플리케이션에 대 한 캐싱을 제공 하는 ASP.NET에서 사용 하기 위해 테스트 합니다. 콘솔 애플리케이션 또는 Windows Forms 애플리케이션과 같은 다른 유형의 애플리케이션의 경우 클래스를 ObjectCache 사용합니다.

생성자

Cache()

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

필드

NoAbsoluteExpiration

Insert(String, Object) 메서드를 호출할 때 absoluteExpiration 매개 변수에서 사용되어 만료되지 않아야 하는 항목을 나타냅니다. 이 필드는 읽기 전용입니다.

NoSlidingExpiration

Insert(String, Object) 또는 Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) 메서드를 호출할 때 slidingExpiration 매개 변수로 사용되어 상대(sliding) 만료를 비활성화시킵니다. 이 필드는 읽기 전용입니다.

속성

Count

캐시에 저장된 항목의 수를 가져옵니다.

EffectivePercentagePhysicalMemoryLimit

ASP.NET이 캐시에서 항목을 제거하기 시작하기 전에 애플리케이션이 소비할 수 있는 실제 메모리의 백분율을 가져옵니다.

EffectivePrivateBytesLimit

캐시에 사용할 수 있는 바이트 수를 가져옵니다.

Item[String]

지정된 키에 있는 캐시 항목을 가져오거나 설정합니다.

메서드

Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

종속성, 만료 및 우선 순위 정책과, 삽입된 항목이 Cache에서 제거되는 경우 애플리케이션에 알리는 데 사용할 수 있는 대리자를 통해, 지정된 항목을 Cache 개체에 추가합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
Get(String)

지정된 항목을 Cache 개체에서 검색합니다.

GetEnumerator()

캐시에 포함된 키 설정과 해당 값을 반복하는 데 사용되는 사전 열거자를 검색합니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
Insert(String, Object)

해당 위치를 참조하는 캐시 키와 Cache 열거형이 제공하는 기본값을 사용하여 CacheItemPriority 개체에 항목을 삽입합니다.

Insert(String, Object, CacheDependency)

파일 또는 키 종속성이 포함된 개체를 Cache에 삽입합니다.

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

종속성 및 만료 정책이 포함된 개체를 Cache에 삽입합니다.

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

종속성, 만료 및 우선 순위 정책과, 삽입된 항목이 Cache에서 제거되는 경우에 애플리케이션에 알리는 데 사용할 수 있는 대리자를 통해 Cache 개체에 개체를 삽입합니다.

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

종속성, 만료 정책, 항목이 캐시에서 제거되기 전에 애플리케이션에 알리는 데 사용할 수 있는 대리자와 함께 Cache 개체에 개체를 삽입합니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Remove(String)

지정된 항목을 애플리케이션의 Cache 개체에서 제거합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IEnumerable.GetEnumerator()

Cache 개체 컬렉션 전체에서 반복할 수 있는 열거자를 반환합니다.

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.

적용 대상

스레드 보안

이 형식은 스레드로부터 안전합니다.

추가 정보