2017-01-26 7 views
3

Ich verwende curently die C# ServiceStack RedisClient auf folgende WeiseWas macht IRedisClient.As <T>() hinter den Kulissen tun?

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

Ich möchte wissen, was hinter den Kulissen mit dies geschieht? Wie weiß Redis, welcher Typ zu welchem ​​Schlüssel gehört? Es kann nicht jeden Typ für eine Übereinstimmung prüfen, das wäre zu langsam. Wenn ich das Objekt setze, serialisiere ich es selbst und füge es als String hinzu - so kann es auch von dort nicht wissen.

Es funktioniert fantastisch, ich habe sogar versucht, Eigenschaften und Namespaces des Typs zu ändern, um zu sehen, was passiert und es behandelt es einfach. Weiß jemand Wie?

+1

Nun, sehen Sie selbst - https://github.com/ServiceStack/ServiceStack.Redis/blob/2b833b6e574067bc94dd5a504cf2fd5d6e7ce12c/src/ServiceStack.Redis/RedisClient.cs – eocron

Antwort

Verwandte Themen