public CrossPlatformNewtonSoftJsonSerializer(ExtendedActorSystem system, NewtonSoftJsonSerializerSettings settings) : base(system) { var converters = settings.Converters .Select(type => CreateConverter(type, system)) .ToList(); converters.Add(new SurrogateConverter(this)); converters.Add(new DiscriminatedUnionConverter()); Settings = new JsonSerializerSettings { SerializationBinder = new CrossPlatformSerializationBinder(), PreserveReferencesHandling = settings.PreserveObjectReferences ? PreserveReferencesHandling.Objects : PreserveReferencesHandling.None, Converters = converters, NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore, ObjectCreationHandling = ObjectCreationHandling .Replace, //important: if reuse, the serializer will overwrite properties in default references, e.g. Props.DefaultDeploy or Props.noArgs ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor, TypeNameHandling = settings.EncodeTypeNames ? TypeNameHandling.All : TypeNameHandling.None, ContractResolver = new AkkaContractResolver() }; _serializer = JsonSerializer.Create(Settings); }
public JsonSerializerWithManifest(ExtendedActorSystem system, NewtonSoftJsonSerializerSettings settings) : base(system) { }
public JsonSerializerWithManifest(ExtendedActorSystem system, Config config) : base(system, NewtonSoftJsonSerializerSettings.Create(config)) { }
public CrossPlatformNewtonSoftJsonSerializer(ExtendedActorSystem system, Config config) : this(system, NewtonSoftJsonSerializerSettings.Create(config)) { }