2016-12-13 5 views
1

私は非常にStackExchange.Redisに新しくなっていますが、RedisキャッシュをStackExchange.Redisに変換するタスクが割り当てられています。つまり、私たちのメソッドの1つでは、データベースの値をbyte[]として返します。StackExchange RedisValue ToByteArrayはシリアル化できません

私は試してみてください。var redisData = database.StringGet(key).ToByteArray();

私はこのエラーを取得:

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);を私は値を取得します。

私の疑問は:redisDatabyte[]に変換するにはどうすればよいですか?

答えて

1

あなたはRedisValueあるStringGet()、によって返されるタイプを見てみる場合は、あなたが表示されます、それはそれはstringbyte[]に暗黙的に変換されます。それを変換するために必要なのは、単純にそれをタイプbyte[](暗黙の演算子に作業をさせてください)の変数として使用するか、明示的にキャストすることです。

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

あなたが保存したデータは、適切なbyte[]アレイでした。それ以外の場合は、stringが格納されています。シリアル化されたオブジェクトの場合は、stringのバイト表現が得られます。

関連する問題