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); }
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); }
/// <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(); }