2016-12-13 3 views
1

저는 매우 신통해 StackExchange.Redis이지만 Redis 캐시를 StackExchange.Redis로 변환하는 작업이 할당되었습니다. 그건 우리의 방법 중 하나에서 byte[]로 데이터베이스 값을 반환했다.StackExchange RedisValue ToByteArray가 Serializable이 아닙니다.

내가하려고하면 나는이 작업을 수행 할 때

Type 'StackExchange.Redis.RedisValue' in Assembly 'StackExchange.Redis, Version=1.1.608.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable

:하지만 var redisData = database.StringGet(key).ToByteArray();

나는이 오류가 var redisData = database.StringGet(key); 내가 값을 얻는다.

내 질문에 : redisData을 어떻게 byte[]으로 변환 할 수 있습니까?

답변

1

RedisValue입니다 StringGet()에 의해 반환되는 유형을 살펴 경우, 당신은 볼 것이다, 그게은 stringbyte[]에 암시 적으로 변환합니다. 변환하기 위해 수행해야하는 것은 단순히 byte[] 유형의 변수로 사용하거나 암시 적 연산자가 작업을 수행하도록 명시 적으로 사용하는 것입니다.

var redisData = (byte[])database.StringGet(key); 

는 I는 저장된 데이터가 적절한 byte[] 배열이고, 가정. 그렇지 않은 경우 string을 저장 한 경우 예 : serialize 된 객체이면 바이트 표현은 이됩니다.