public void Test()
        {
            var e = new Example()
            {
                Property = 3, Field = "3"
            };
            var c = new Example();

            MemberwiseCopier.CopyMembers(e, c, o => o.AddFields());
            c.Property.Should().Be(e.Property);
            c.Field.Should().Be(e.Field);
        }
        internal FusionWebSocketServerBuilder(FusionBuilder fusion)
        {
            Fusion = fusion;
            if (Services.Contains(AddedTagDescriptor))
            {
                return;
            }
            // We want above Contains call to run in O(1), so...
            Services.Insert(0, AddedTagDescriptor);

            Fusion.AddPublisher();
            Services.TryAddSingleton <WebSocketServer.Options>();
            Services.TryAddSingleton <WebSocketServer>();
            Services.AddMvcCore()
            .AddNewtonsoftJson(
                options => MemberwiseCopier.CopyMembers(
                    JsonNetSerializer.DefaultSettings,
                    options.SerializerSettings));
        }