2
我正在使用Booksleeve從C#代碼與Redis進行通信。該代碼首先從散列中檢索所有字段和值:Redis Booksleeve,HGETALL並將字節數組轉換爲long
var vals = await Redis.Hashes.GetAll(0, redisKey);
散列包含具有long類型值的字段。
對Hashes.GetAll的調用將字段值作爲字節數組返回。問題是,如何將此字節數組轉換爲C#long?
例如,如果我使用Hashes.GetInt64檢索值,則返回9684,這是正確的。但我沒能檢索到字節數組轉換爲長,所以它會匹配這個值:
BitConverter.ToInt64(redisHashValue, 0) throws ArgumentException
BitConverter.ToInt32(redisHashValue, 0) returns 876099129
BitConverter.ToInt16(redisHashValue, 0) returns 13881
製作一個可以支持所有不同*返回類型的API是...從根本上來說很棘手;我需要重新設計集羣的API,並且我非常想要做一些更像是將''RedisValue''返回的結構,它在內部**有一個字節數組,但是它提供了隱式轉換運算符爲'string','int','long','float','double'和'byte []'。我想不出比這更有用的東西,但我願意接受建議...... –