如何使用Redis支持的ServiceStack ICacheClient存储和检索枚举值

时间:2013-03-26 00:33:37

标签: c# .net asp.net-mvc redis servicestack

我正在使用ICacheClient和Redis缓存我的应用中的值。

在一种情况下,我需要缓存枚举的值。

枚举看起来像这样

public enum Status
{
    OK,
    Warn,
    Error
}

我正在将值添加到缓存中:

cacheClient.Add<Status>(myKey, Status.Warn);

当我去检索这样的值时:

Status status;
status = cacheClient.Get<Status>(myKey);

抛出异常是因为缓存客户端返回的值与枚举值不匹配。

我似乎得到了一个已经转发"标记的值:\"Warn\"

我做错了吗?

1 个答案:

答案 0 :(得分:3)

修复似乎使用ServiceStack版本3.9.42.0或更高版本。缓存将字符串数据存储为JSON,因此该问题可能与最近关闭的ServiceStack.Text的this fix有关。