StackExchange.Redis может хранить Redis Strings, которые являются бинарными. Это означает, что вы можете легко сериализовать POCO с помощью технологии сериализации по вашему выбору и разместить ее там.
В следующем примере используется .NET BinaryFormatter. Обратите внимание, что вы должны украсить свой класс SerializableAttribute
, чтобы сделать эту работу.
Пример установить операцию:
PocoType somePoco = new PocoType { Id = 1, Name = "YouNameIt" };
string key = "myObject1";
byte[] bytes;
using (var stream = new MemoryStream())
{
new BinaryFormatter().Serialize(stream, somePoco);
bytes = stream.ToArray();
}
db.StringSet(key, bytes);
Пример получения работы:
string key = "myObject1";
PocoType somePoco = null;
byte[] bytes = (byte[])db.StringGet(key);
if (bytes != null)
{
using (var stream = new MemoryStream(bytes))
{
somePoco = (PocoType) new BinaryFormatter().Deserialize(stream);
}
}
ОК спасибо за ответ – Sherry
Это хороший пример, это, пожалуйста, пожалуйста, пожалуйста, не используйте BknaryFormatter. Когда-либо./cc @Duke –
@MarcGravell Почему? – Frank