Configure YesSql with custom content serializer
This commit is contained in:
parent
945d8d9e56
commit
ea48910a69
|
|
@ -31,9 +31,9 @@ namespace Elsa.Data.Extensions
|
|||
IServiceProvider serviceProvider,
|
||||
Action<IServiceProvider, Configuration> configure)
|
||||
{
|
||||
var configuration = new Configuration();
|
||||
var configuration = new Configuration { ContentSerializer = new CustomJsonContentSerializer() };
|
||||
configure(serviceProvider, configuration);
|
||||
|
||||
|
||||
// TODO: The following line is a temporary workaround until the bug in YesSql is fixed: https://github.com/sebastienros/yessql/pull/280
|
||||
var store = StoreFactory.CreateAndInitializeAsync(configuration).GetAwaiter().GetResult();
|
||||
//var store = StoreFactory.Create(configuration);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using NodaTime;
|
||||
using NodaTime.Serialization.JsonNet;
|
||||
using YesSql;
|
||||
|
||||
namespace Elsa.Data.Services
|
||||
{
|
||||
public class CustomJsonContentSerializer : IContentSerializer
|
||||
{
|
||||
private static readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb);
|
||||
public object? Deserialize(string content, Type type) => JsonConvert.DeserializeObject(content, type, JsonSettings);
|
||||
public dynamic? DeserializeDynamic(string content) => JsonConvert.DeserializeObject<dynamic>(content, JsonSettings);
|
||||
public string Serialize(object item) => JsonConvert.SerializeObject(item, JsonSettings);
|
||||
}
|
||||
}
|
||||
|
|
@ -24,7 +24,7 @@ namespace Elsa.Samples.DistributedLock
|
|||
{
|
||||
services
|
||||
.AddElsa(options => options
|
||||
.UsePersistence(db => db.UseSqLite("Data Source=elsa2.db;Cache=Shared"))
|
||||
.UsePersistence(db => db.UseSqLite("Data Source=elsa.db;Cache=Shared"))
|
||||
.UseRedisLockProvider("localhost:6379,abortConnect=false"))
|
||||
.AddConsoleActivities()
|
||||
.AddTimerActivities(options => options.Configure(timer => timer.SweepInterval = Duration.FromSeconds(5)))
|
||||
|
|
|
|||
Loading…
Reference in a new issue