【问题标题】:How to use servicestack typed client?如何使用 servicestack 类型的客户端?
【发布时间】:2015-11-28 17:44:46
【问题描述】:

基本上我们有一个 redis 实例,我们想保存和获取 Redis 列表中的所有项目。

我们可以保存它但是当我们试图获取列表时

var redis = redisclient.As<MyModel>();
string key = "myredislistkey";
List<MyModel> mylist = redis.GetAllItemsFromList(key);

我知道这是错误的,但为什么呢?以及如何使用 Redis 键(或所谓的 listid)正确使用 Typed 客户端到 Getallitems?

官方用法是

List<T> GetAllItemsFromList(IRedisList<T> fromList);

但如果我已经拥有 fromList,我为什么还要尝试获取它?

【问题讨论】:

    标签: c# redis servicestack typed


    【解决方案1】:

    您可以通过以下方式获得对类型列表(即IRedisList&lt;T&gt;)的引用:

    var redisModels = redisClient.As<MyModel>().List["myredislistkey"];
    

    IRedisList&lt;T&gt; 只是一个通过远程 redis LIST 实现 .NET IList&lt;T&gt; 接口的适配器,即它本身不包含任何元素,您可以使用它与此列表交互,例如:

    向其中添加项目:

    redisModels.Add(new MyModel { ... });
    redisModels.AddRange(new[] { new MyModel { ... }, new MyModel { ... } });
    

    并获取所有元素:

    var allModels = redisModels.GetAll();
    

    【讨论】:

    • 谢谢!这正是我所希望的。顺便说一句,如果你能给我一个类型化 redis 客户端和普通 redis 客户端的文档站点链接,我可以在将来引用它们。现在我能找到的只有这个github.com/ServiceStack/ServiceStack.Redis/wiki/…
    • @shawhu 文档有点分散,它们最初位于 docs.servicestack.net,但其中很多位于 StackOverflow 上。尽管from this release 我们已经开始向项目 repo 添加更多文档,我们将继续添加这些文档。如果您遇到阻碍,请随时在此处继续提问。
    • 那么,我将不得不在这里寻求更多帮助。谢谢!!
    • 谢谢,这对我有帮助。一件事:我认为应该是redisClient.As&lt;MyModel&gt;().Lists["myredislistkey"]; 而不是redisClient.As&lt;MyModel&gt;().List["myredislistkey"];,缺少一个's'...
    猜你喜欢
    • 2014-04-02
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多