public ProxyCache(T instance, ICache cache, TimeSpan timeOut, IProxyKeyHandler proxyKeyHandler) : base(typeof(T))
 {
     _instance        = instance;
     _timeOut         = timeOut;
     _cache           = cache;
     _proxyKeyHandler = proxyKeyHandler;
 }
 public static T Create <T>(T instance, ICache cache, TimeSpan timeOut, IProxyKeyHandler proxyKeyHandler)
 {
     return((T) new ProxyCache <T>(instance, cache, timeOut, proxyKeyHandler).GetTransparentProxy());
 }