2013-01-09 21 views

Trả lời

58

ObjectCache là lớp trừu tượng thể hiện cách bạn nên xây dựng Cache tuân thủ các quy tắc mà người viết ObjectCache muốn bạn tuân thủ. Bạn không thể khởi tạo ObjectCache trực tiếp vì nó là abstract.

MemoryCache là thực hiện thực tế của ObjectCache.

Từ các tài liệu:

ObjectCache

Đại diện một bộ nhớ cache đối tượng và cung cấp những phương pháp cơ bản và tính để truy cập vào bộ nhớ cache đối tượng.

MemoryCache

Đại diện cho loại mà thực hiện một bộ nhớ cache trong bộ nhớ.

Nhìn vào tờ khai cho MemoryCache:

public class MemoryCache : ObjectCache, 
    IEnumerable, IDisposable 

Chúng ta có thể thấy rằng MemoryCache thừa hưởng từ ObjectCache - có nghĩa là, nó là một bộ nhớ cache cho các đối tượng có sử dụng bộ nhớ như lưu trữ của nó - điều này do đó là một thực hiện của ObjectCache.

Bạn có thể tự viết; ví dụ, DatabaseCache, cũng có thể kế thừa từ ObjectCache nhưng thay vào đó nó sẽ sử dụng một cơ sở dữ liệu làm bộ nhớ sao lưu.

Để sử dụng hàng ngày, miễn là nó đáp ứng nhu cầu của bạn, bạn sẽ sử dụng và tiêu thụ MemoryCache. Nếu bạn muốn viết của riêng bạn, bạn có thể kế thừa từ ObjectCache và thực hiện các phương thức và thuộc tính cần thiết. Tuy nhiên, trong thực tế, có lẽ có rất ít lợi ích thiết thực để làm điều này khi Microsoft đã thực hiện một số giải pháp lưu trữ bộ nhớ đệm khác, cũng như nhiều nhà cung cấp khác.

+1

Để tạo của riêng bạn, hãy xem [Tạo lớp Cache tùy chỉnh trên MSDN] (https://msdn.microsoft.com/en-us/library/ff919782.aspx#Anchor_5) – Stacked

3

ObjectCache là lớp trừu tượng, bạn không thể 'sử dụng' nó cho mỗi lần. Như Dash nói trong bình luận của mình, nó được thiết kế để hiển thị như thế nào một bộ nhớ cache nên được xây dựng và những hoạt động nó hỗ trợ. MemoryCache là việc triển khai ObjectCache và từ câu hỏi của bạn có thể là những gì bạn nên sử dụng. Tuy nhiên, vì ObjectCache là trừu tượng, bạn có thể dễ dàng viết FileCache của riêng bạn kế thừa từ ObjectCache và nó sẽ hoàn toàn hợp lệ.

16

Từ MSDN;

Loại ObjectCache là loại chính cho đối tượng trong bộ nhớ bộ nhớ cache. Lớp MemoryCache tích hợp xuất phát từ lớp ObjectCache . Lớp MemoryCache là bộ nhớ cache đối tượng cụ thể duy nhất thực hiện trong .NET Framework 4 có nguồn gốc từ lớp Object2ache .

public class MemoryCache : ObjectCache, 
    IEnumerable, IDisposable 

MemoryCache thừa hưởng từ ObjectCache.

Bạn có thể tham chiếu đến phiên bản MemoryCache mặc định như thế này;

public static ObjectCache cache = MemoryCache.Default; 
Các vấn đề liên quan