如何使用 servicestack 类型的客户端?
Posted
技术标签:
【中文标题】如何使用 servicestack 类型的客户端?【英文标题】:How to use servicestack typed client? 【发布时间】: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,我为什么还要尝试获取它?
【问题讨论】:
【参考方案1】:您可以通过以下方式获得对类型列表(即IRedisList<T>
)的引用:
var redisModels = redisClient.As<MyModel>().List["myredislistkey"];
IRedisList<T>
只是一个通过远程 redis LIST 实现 .NET IList<T>
接口的适配器,即它本身不包含任何元素,您可以使用它与此列表交互,例如:
向其中添加项目:
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,但其中很多位于 *** 上。尽管from this release 我们已经开始向项目 repo 添加更多文档,我们将继续添加这些文档。如果您遇到阻碍,请随时在此处继续提问。 那么,我将不得不在这里寻求更多帮助。谢谢!! 谢谢,这对我有帮助。一件事:我认为应该是redisClient.As<MyModel>().Lists["myredislistkey"];
而不是redisClient.As<MyModel>().List["myredislistkey"];
,缺少一个's'...以上是关于如何使用 servicestack 类型的客户端?的主要内容,如果未能解决你的问题,请参考以下文章
使用 ServiceStack 使用 REST Web 服务时的用户身份验证