mirror of https://github.com/abpframework/abp.git
Browse Source
Introduce IDistributedCacheSerializer and implement as Utf8JsonDistributedCacheSerializerpull/965/head
committed by
GitHub
12 changed files with 84 additions and 27 deletions
@ -0,0 +1,9 @@ |
|||||
|
namespace Volo.Abp.Caching |
||||
|
{ |
||||
|
public interface IDistributedCacheSerializer |
||||
|
{ |
||||
|
byte[] Serialize<T>(T obj); |
||||
|
|
||||
|
T Deserialize<T>(byte[] bytes); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,26 @@ |
|||||
|
using System.Text; |
||||
|
using Volo.Abp.DependencyInjection; |
||||
|
using Volo.Abp.Json; |
||||
|
|
||||
|
namespace Volo.Abp.Caching |
||||
|
{ |
||||
|
public class Utf8JsonDistributedCacheSerializer : IDistributedCacheSerializer, ITransientDependency |
||||
|
{ |
||||
|
protected IJsonSerializer JsonSerializer { get; } |
||||
|
|
||||
|
public Utf8JsonDistributedCacheSerializer(IJsonSerializer jsonSerializer) |
||||
|
{ |
||||
|
JsonSerializer = jsonSerializer; |
||||
|
} |
||||
|
|
||||
|
public byte[] Serialize<T>(T obj) |
||||
|
{ |
||||
|
return Encoding.UTF8.GetBytes(JsonSerializer.Serialize(obj)); |
||||
|
} |
||||
|
|
||||
|
public T Deserialize<T>(byte[] bytes) |
||||
|
{ |
||||
|
return (T)JsonSerializer.Deserialize(typeof(T), Encoding.UTF8.GetString(bytes)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue