internal HyperionSerializerSettings ApplySettings(HyperionSerializerSettings settings)
 => new HyperionSerializerSettings(
     PreserveObjectReferences.HasValue ? PreserveObjectReferences.Value : settings.PreserveObjectReferences,
     VersionTolerance.HasValue ? VersionTolerance.Value : settings.VersionTolerance,
     KnownTypesProvider ?? settings.KnownTypesProvider,
     PackageNameOverrides ?? settings.PackageNameOverrides
     );
Exemple #2
0
        public HyperionSerializer()
        {
            HyperionSerializerSettings hyperionSerializerSettings = HyperionSerializerSettings.Default;

            _serializer = new Serializer(new SerializerOptions(preserveObjectReferences: hyperionSerializerSettings.PreserveObjectReferences,
                                                               versionTolerance: hyperionSerializerSettings.VersionTolerance,
                                                               ignoreISerializable: hyperionSerializerSettings.IgnoreISerializable));
        }
Exemple #3
0
        public void Should_Initialize_Defualt_Values()
        {
            HyperionSerializerSettings hyperionSerializerSettings = HyperionSerializerSettings.Default;

            Assert.True(hyperionSerializerSettings.PreserveObjectReferences);
            Assert.True(hyperionSerializerSettings.VersionTolerance);
            Assert.True(hyperionSerializerSettings.IgnoreISerializable);
        }
        protected override void ConfigureApplicationContainer(TinyIoCContainer container)
        {
            base.ConfigureApplicationContainer(container);

            HyperionSerializerSettings hyperionSerializerSettings = HyperionSerializerSettings.Default;

            Serializer = new Serializer(new SerializerOptions(preserveObjectReferences: hyperionSerializerSettings.PreserveObjectReferences,
                                                              versionTolerance: hyperionSerializerSettings.VersionTolerance,
                                                              ignoreISerializable: hyperionSerializerSettings.IgnoreISerializable));

            container.Register(Serializer);
        }
Exemple #5
0
        public void Should_Initialize_With_Given_Parameters()
        {
            var preserveObjectReferences = true;
            var versionTolerance         = false;
            var ignoreISerializable      = true;

            HyperionSerializerSettings hyperionSerializerSettings = new HyperionSerializerSettings(preserveObjectReferences, versionTolerance, ignoreISerializable);

            Assert.Equal(preserveObjectReferences, hyperionSerializerSettings.PreserveObjectReferences);
            Assert.Equal(versionTolerance, hyperionSerializerSettings.VersionTolerance);
            Assert.Equal(ignoreISerializable, hyperionSerializerSettings.IgnoreISerializable);
        }
Exemple #6
0
        public void Setup_should_be_converted_to_settings_correctly()
        {
            var setup = HyperionSerializerSetup.Empty
                        .WithPreserveObjectReference(true)
                        .WithKnownTypeProvider <NoKnownTypes>();
            var settings =
                new HyperionSerializerSettings(false, false, typeof(DummyTypesProvider), new Func <string, string>[] { s => $"{s}.." });
            var appliedSettings = setup.ApplySettings(settings);

            appliedSettings.PreserveObjectReferences.Should().BeTrue();           // overriden
            appliedSettings.VersionTolerance.Should().BeFalse();                  // default
            appliedSettings.KnownTypesProvider.Should().Be(typeof(NoKnownTypes)); // overriden
            appliedSettings.PackageNameOverrides.Count().Should().Be(1);          // from settings
            appliedSettings.PackageNameOverrides.First()("a").Should().Be("a..");
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <Serializer>(provider =>
            {
                HyperionSerializerSettings hyperionSerializerSettings = HyperionSerializerSettings.Default;

                return(new Serializer(new SerializerOptions(preserveObjectReferences: hyperionSerializerSettings.PreserveObjectReferences,
                                                            versionTolerance: hyperionSerializerSettings.VersionTolerance,
                                                            ignoreISerializable: hyperionSerializerSettings.IgnoreISerializable)));
            });

            // If using Kestrel:
            services.Configure <KestrelServerOptions>(options => { options.AllowSynchronousIO = true; });

            // If using IIS:
            services.Configure <IISServerOptions>(options => { options.AllowSynchronousIO = true; });
        }
Exemple #8
0
 public HyperionSerializerWrapper(ExtendedActorSystem system, HyperionSerializerSettings settings) : base(system)
 {
     _serializer = new HyperionSerializer(system, settings);
 }
 public DebugHyperionSerializer(ExtendedActorSystem system, HyperionSerializerSettings settings) : base(system, settings)
 {
 }
Exemple #10
0
        /// <summary>
        /// Configures the cache manager to use the <code>Hyperion</code> based cache serializer.
        /// </summary>
        /// <param name="part">The configuration part.</param>
        /// <param name="serializerSettings">Hyperion serialization settings</param>
        /// <returns>The builder instance.</returns>
        public static ConfigurationBuilderCachePart WithHyperionSerializer(this ConfigurationBuilderCachePart part, HyperionSerializerSettings serializerSettings)
        {
            if (part == null)
            {
                throw new ArgumentNullException(nameof(part));
            }

            return(part.WithSerializer(typeof(HyperionSerializer), serializerSettings));
        }