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
구현

예제

다음 예제는 캐시의 항목에 할당된 값을 사용자에게 보여 주고 캐시에서 항목이 제거될 때 사용자에게 알리는 페이지입니다. 대리자의 RemovedCallback 서명이 있는 메서드를 만들어 CacheItemRemovedCallback 캐시 항목이 제거될 때 사용자에게 알리고 열거형을 사용하여 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 개체의 HttpContext 속성을 Cache 통해 Page 사용할 수 있습니다.

메모

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

생성자

Name Description
Cache()

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

필드

Name Description
NoAbsoluteExpiration

메서드 호출의 absoluteExpiration 매개 변수에서 Insert(String, Object) 항목이 만료되지 않아야 함을 나타내는 데 사용됩니다. 이 필드는 읽기 전용입니다.

NoSlidingExpiration

슬라이딩 만료를 slidingExpirationInsert(String, Object) 사용하지 않도록 설정하는 메서드 호출에서 Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) 매개 변수로 사용됩니다. 이 필드는 읽기 전용입니다.

속성

Name Description
Count

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

EffectivePercentagePhysicalMemoryLimit

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

EffectivePrivateBytesLimit

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

Item[String]

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

메서드

Name Description
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, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

종속성, 만료 및 우선 순위 정책을 사용하여 개체에 Cache 개체를 삽입하고 삽입된 항목이 제거될 때 애플리케이션에 알리는 데 사용할 수 있는 Cache대리자를 삽입합니다.

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

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

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

종속성 및 만료 정책을 사용하여 개체 Cache 를 삽입합니다.

Insert(String, Object, CacheDependency)

파일 또는 키 종속성이 있는 개체를 Cache 삽입합니다.

Insert(String, Object)

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

MemberwiseClone()

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

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

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

ToString()

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

(다음에서 상속됨 Object)

명시적 인터페이스 구현

Name Description
IEnumerable.GetEnumerator()

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

확장명 메서드

Name Description
AsParallel(IEnumerable)

쿼리의 병렬 처리를 사용하도록 설정합니다.

AsQueryable(IEnumerable)

IEnumerable IQueryable변환합니다.

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

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

적용 대상

스레드 보안

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

추가 정보