I created on open source project named cachew.castlewindsor with a caching interceptor.
It is a general purpose solution for caching.
Here is a simple example of usage:
var container = new WindsorContainer();
container.Register(Component.For<CacheInterceptor>()
.Instance(new CacheInterceptor(new Cache(TimeoutStyle.RenewTimoutOnQuery, TimeSpan.FromSeconds(3)))));
container.Register(Component.For<IServer>().ImplementedBy<Server>().Interceptors<CacheInterceptor>());
The default behaviour is to cache all methods that starts with Get and return data, but you can also change what prefixes to cache.
The project is available on nuget:
http://www.nuget.org/packages/Cachew.CastleWindsor/
And the source code is available here:
https://github.com/kobbikobb/Cachew