How to change CacheClients at runtime in ServiceStack? -


i'd (through app/web configuration perhaps) change cache client used in servicestack application, during runtime.

for example, have currently:

 container.register<icacheclient>(new memorycacheclient()); 

i'd @ runtime change redis icacheclient usage. if had 2 containers registered (one memory , on redis). possible switch between containers @ runtime in call in service:

    public object get(foorequest request)     {         string cachekey = urnid.createwithparts("foo", "bar");         return requestcontext.tooptimizedresultusingcache(base.cache, cachekey, scacheduration, () =>             {                 return testrepository.foos;             });     } 

edit:

note, after more research, if have more 1 icacheclient registered:

        container.register<iredisclientsmanager>(c => new pooledredisclientmanager("localhost:6379"));         container.register(c => c.resolve<iredisclientsmanager>().getcacheclient());         container.register<icacheclient>(new memorycacheclient()); 

then accessing base.cache within service return recent icacheclient registered... ie: in case above, memorycacheclient.

so ability access cache object within service, i'd need way particular cache registered caches, can't see property for.

doing allow register different providers container based on web config setting:

var rediscachestring = configurationmanager.appsettings["useredis"]; var useredis = false; if (!bool.tryparse(rediscachestring, out useredis)) {   container.register<iredisclientsmanager>(c => new pooledredisclientmanager("localhost:6379"));   container.register(c => c.resolve<iredisclientsmanager>().getcacheclient()); } else {   container.register<icacheclient>(new memorycacheclient()); } 

hope helps!


Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -