2017-01-26 39 views
3

我curently使用C#ServiceStack RedisClient下列方式IRedisClient.As <T>()在幕后做了什么?

using (var cache = new BasicRedisClientManager(readWriteHosts).ClientFactory.GetClient()) 
    { 
     var r = cache.As<Foo>(); 
     var myItem = r.GetById(123); 
    } 

我想知道这个幕后发生了什么? Redis如何知道哪种类型与哪个密钥相关?它不能检查每种类型的比赛,那太慢了。当我设置对象时,我自己将其序列化并将其添加为字符串 - 因此它无法从那里知道。

它非常有效,我甚至试着改变类型的属性和命名空间来看看会发生什么,它只是处理它。有谁知道如何

+1

好的,请亲自看看 - https://github.com/ServiceStack/ServiceStack.Redis/blob/2b833b6e574067bc94dd5a504cf2fd5d6e7ce12c/src/ServiceStack.Redis/RedisClient.cs – eocron

回答