2010-01-05 157 views
2

我想在Web應用程序中實現緩存。高速緩存將在BLL中完成。C#緩存使用緩存依賴

的BLL方法signiture是

public static List<Ailias> Select(List<Filter> filters) 

,並在時刻簡單地調用在DAL的相應的方法。

我遇到的問題是我的緩存依賴項將成爲過濾器對象,只要過濾器對象不同,就應該創建新的DAL調用。

如何添加這種依賴關係,我可以在文檔中找到的依賴關係是文件?

回答

0

還有就是,據我所知2個CacheDependancies預先定義的(文件和SQL),但是沒有什麼可以阻止你實現自己的CacheDependancy描述in this link

0

緩存依賴只是卸載從緩存項的後臺方法。這意味着將緩存管理邏輯放在另一個系統/進程中。它可以工作,但它也可能引入比必要的更多的複雜性。

「...只要過濾器對象不同...」

不同於什麼?之前在該方法中使用的任何東西都會調聽起來就像你的List集合是你的緩存鍵。

考慮在List集合上實現一個唯一的哈希鍵,並在緩存中維護兩個項目 - 靜態名稱(如「list-alias-filter-key」和List集合中的緩存項)。

當您對該方法進行後續調用時,請將List unique hash key(緩存鍵)與「list-alias-filter-key」中的鍵進行比較。如果它們相同,則知道可以安全地爲List緩存值。如果它們不同,請使用新的List集合重新查詢並重置緩存中的兩個值。