任何人都可以提供一個如何與溫莎城堡緩存工作的例子。與溫莎城堡AOP緩存
我相信作爲一個起點,我定義我CacheAspect
從IInterceptor繼承如下:
public class CacheAspect : IInterceptor
{
public void Intercept(IInvocation invocation)
{
// Code here to check if data is in cache and if so
// put that into invocation.ReturnValue... job done!
// If not then invoke the method
invocation.Proceed();
// Now cache the result of the invocation
}
}
然後我就可以裝點的任何方法與我CacheAspect
...
[Interceptor(typeof(CacheAspect))]
public List<string> GetStaticData()
{
}
..和當然在Windsor容器中註冊整個東西。
但是......
我如何可以改變的時間我想在每個方法調用我的緩存東西的多少?在這個例子中,我可能希望它被緩存60分鐘。對於其他例子一天等等等。我必須爲每個緩存持續時間創建
CacheAspect
嗎?從每種方法中識別每個緩存值的最佳方法是什麼?例如,使用
invocation.TargetType.Name
和invocation.Method.Name
的組合?在問題2上展開 - 如果傳入了參數會怎麼樣?然後,我需要確定是否已緩存匹配特定參數集的數據。
謝謝。