2017-08-19 12 views
0

私が追加しようとしている値は文字列です。 MemcachedのEnyimのMemcachedクライアントをAppendメソッドで使用する方法?

から値を付加しましょうMemcachedのへの追加

(罰金だ)

var value = "Some string value that should get appended"; 
var bytes = Encoding.ASCII.GetBytes(value); 
_memcachedClient.Append(key, new ArraySegment<byte>(bytes, 0, bytes.Length)); 

を:私はEncoding.ASCII.GetBytes(value)を使用してIMemcachedClientにすることを渡す文字列をバイト配列に変換することができました

var valueAsBase64 = _memcachedClient.Get(key) as string; var bytes = System.Convert.FromBase64String(valueAsBase64); var result = Encoding.ASCII.GetString(bytes); 

返される値が表示され、文字列です。私は、値を取得する方法を、私が始めた文字列に戻して返されるようにしています(現在は追加されています)。

答えて

0

私が実行していた問題は、空のバイト配列ではなく空の文字列でエントリを単純に初期化していたことです。だから、戻り値のタイプは、混乱したミスマッチでした。

キーが存在しない場合、初期値を設定しない.Append()メソッドに問題が発生しました。キーが存在しない場合は、最初のPutを行う方法があるかどうかを調べるためにもう少し詳しく見ていきます。

しかしこれは動作します:

var bytes = (byte[])_cache.Get(key); 
var value = Encoding.ASCII.GetString(bytes); 
関連する問題