| 0 | 1 <% title # Cache aspect %> | 
|  | 2 <% group # Cache aspect %> | 
|  | 3 <p class="j">This aspect helps to cache method calls. | 
|  | 4 The aspect uses input method parameters to create a cache key and | 
|  | 5 caches return value and all output (both <i>ref</i> and <i>out</i>) parameters. | 
|  | 6 By default only value types and string type of the method parameters are used | 
|  | 7 to create a cache key. Any other types are ignored. | 
|  | 8 This behavior can be changed by assigning the <b>CacheAspect.IsCacheableParameterType</b> property | 
|  | 9 to a delegate providing custom logic. | 
|  | 10 </p> | 
|  | 11 | 
|  | 12 CacheAspect.cs | 
|  | 13 <% ..\..\..\HowTo\Aspects\CacheAspect.cs %> | 
|  | 14 | 
|  | 15 If we decompile the actual emitted TestClass class, we may see something like the following: | 
|  | 16 <% Doc\Aspects\CacheAspect.cs %> |