Sự khác biệt giữa .NET framework 4.0 MemoryCache
vs ObjectCache
là gì? Nơi sử dụng đối tượng nào?Sự khác nhau giữa MemoryCache vs ObjectCache trong .net 4.0 là gì?
Trả lời
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:
Đạ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.
Đạ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.
Để 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
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ệ.
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;
- 1. Sự khác nhau giữa C#, .NET và CLI là gì?
- 2. Sự khác nhau giữa Python vs Jython vs IronPython vs wxPython là gì?
- 3. Sự khác nhau giữa AxInterop và Interop là gì?
- 4. Sự khác nhau giữa SqlCommand.CommandTimeout và SqlConnection.ConnectionTimeout là gì?
- 5. Sự khác nhau giữa oracle.sql.BLOB.DURATION_CALL vs oracle.sql.BLOB.DURATION_SESSION
- 6. Sự khác nhau giữa dataview và datatable là gì?
- 7. Sự khác nhau giữa document.getElementById ('mybox') và mybox là gì?
- 8. Sự khác nhau giữa "được' VS 'getProperty'
- 9. Sự khác nhau giữa các tùy chọn đồng bộ luồng khác nhau trong C# là gì?
- 10. Sự khác nhau giữa tải vs DOMContentLoaded
- 11. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 12. Sự khác nhau giữa == và = trong Prolog là gì?
- 13. Sự khác nhau giữa // và /// trong Visual Studio là gì?
- 14. Sự khác nhau giữa: = và + = trong tạo tệp là gì?
- 15. Sự khác nhau giữa * và. * Trong MATLAB là gì?
- 16. Sự khác nhau giữa $ @ và $ * trong UNIX là gì?
- 17. Sự khác nhau giữa: = và = trong MySQL là gì?
- 18. Sự khác nhau giữa "||" là gì và "hoặc" trong Perl?
- 19. Sự khác nhau giữa 'eq' và '= ~' trong Perl là gì?
- 20. Sự khác nhau giữa 'và #' trong Lisp là gì?
- 21. Sự khác nhau giữa KeyValuePair và Hashtable trong .NET là gì?
- 22. Sự khác nhau giữa biểu thức lambda và vị từ trong .NET là gì?
- 23. Sự khác nhau giữa Phiên bản và 'Phiên bản thời gian chạy' trong .Net là gì?
- 24. Sự khác nhau giữa EnumerateFiles và EnumerateFileSystemEntries trong .NET 4 là gì?
- 25. Sự khác nhau giữa các thuộc tính CurrentCulture và CurrentUICulture của CultureInfo trong .NET là gì?
- 26. Sự khác nhau giữa X509Certificate2 và X509Certificate trong .NET là gì?
- 27. gì khác nhau giữa InternalResourceViewResolver vs UrlBasedViewResolver
- 28. Sự khác nhau giữa DataContractJsonSerializer và JavaScriptSerializer là gì?
- 29. Sự khác nhau giữa ASP.Net 3.5 và 4.0
- 30. Sự khác nhau giữa NHibernate Query <> vs QueryOver <> là gì?
MemoryCache là triển khai cụ thể của ObjectCache. Từ một quan điểm thiết kế, ObjectCache là trừu tượng và trình bày cách xây dựng bộ nhớ đệm. MemoryCache là việc thực hiện thực tế này. – dash