c# - 如何使用 servicestack 类型的客户端?

标签 c# redis servicestack typed

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

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

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

我知道这是错误的,但为什么呢?以及如何使用 Redis key (或所谓的 listid)正确使用 Typed 客户端来获取所有项目?

官方用法是

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

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

最佳答案

您可以获得对类型化列表(即 IRedisList<T>)的引用:

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

IRedisList<T>只是一个实现 .NET IList<T> 的适配器通过远程 redis LIST 接口(interface),即它本身不包含任何元素,您可以使用它来与此列表接口(interface),例如:

向其中添加项目:

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

并获取所有元素:

var allModels = redisModels.GetAll();

关于c# - 如何使用 servicestack 类型的客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32366329/

相关文章:

c# - 我在非静态方法上收到 "an object reference is required for the non-static field"异常...我做错了什么?

c# - 为什么图像的流媒体源不起作用?

php - 如何将 php 数组存储到 redis 并在 nodejs 中检索?

asp.net - 获取错误 403 图像 Angular

c# - 当不存在时,同一语句中的 MySQL Insert 和 Select 返回 'records'

ruby-on-rails - "You are connecting to Redis v3.2.9, Sidekiq requires Redis v4.0.0 or greater?"

Django celery - 检查任务是否完成,如果完成则重启任务(如果没有完成,不要重启任务)

servicestack - 不返回迷你分析器 javascript 和 css 包含内容

compiler-errors - ServiceStack : Error calling service

c# - 如何在 Visual Studio 中的 http Get 请求中传递对象参数