Ejemplo n.º 1
0
        public void ProtobufSerializer_ShouldRoundTrip()
        {
            var obj = new ClassToSerialize
            {
                Name = "Bob",
                Id   = 100
            };

            var serializer   = new ProtobufSerializer();
            var serialized   = serializer.SerializeToStream(obj);
            var deserialized = serializer.Deserialize <ClassToSerialize>(serialized);

            deserialized.Name.ShouldEqual(obj.Name);
            deserialized.Id.ShouldEqual(obj.Id);
        }
Ejemplo n.º 2
0
        public void ProtobufSerializer_ShouldRoundTripCircularReferences()
        {
            var obj = new SelfReferential
            {
                ClassToSerialize = new ClassToSerialize
                {
                    Name = "Bob",
                    Id   = 100
                }
            };

            obj.Me = obj;

            var serializer   = new ProtobufSerializer();
            var serialized   = serializer.SerializeToStream(obj);
            var deserialized = serializer.Deserialize <SelfReferential>(serialized);

            deserialized.ClassToSerialize.Name.ShouldEqual(obj.ClassToSerialize.Name);
            deserialized.ClassToSerialize.Id.ShouldEqual(obj.ClassToSerialize.Id);
            deserialized.Me.ShouldEqual(deserialized);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Adds the rest handlers.
        /// </summary>
        /// <param name="services">The services.</param>
        public void Init(IEnumerable <IRestfulService> services)
        {
            _restServices.AddRange(services);

            _logger.Info("Calling EndpointHost.ConfigureHost");
            EndpointHost.ConfigureHost(this, ServerName, CreateServiceManager());

            _logger.Info("Registering protobuf as a content type filter");
            ContentTypeFilters.Register(ContentType.ProtoBuf, (reqCtx, res, stream) => ProtobufSerializer.SerializeToStream(res, stream), (type, stream) => ProtobufSerializer.DeserializeFromStream(stream, type));

            _logger.Info("Calling ServiceStack AppHost.Init");
            Init();
        }