Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public JsonSerializerWithManifest(ExtendedActorSystem system, NewtonSoftJsonSerializerSettings settings)
     : base(system)
 {
 }
Exemplo n.º 3
0
 public JsonSerializerWithManifest(ExtendedActorSystem system, Config config)
     : base(system, NewtonSoftJsonSerializerSettings.Create(config))
 {
 }
Exemplo n.º 4
0
 public CrossPlatformNewtonSoftJsonSerializer(ExtendedActorSystem system, Config config)
     : this(system, NewtonSoftJsonSerializerSettings.Create(config))
 {
 }