mirror of https://github.com/abpframework/abp.git
5 changed files with 53 additions and 14 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