Ellemy.CQRS.Serializers.GoogleProtocolBuffersSerializer.Serializer.Serialize C# (CSharp) Method

Serialize() public method

public Serialize ( object input ) : string
input object
return string
        public string Serialize(object input)
        {
            var t = _protoGenerator.GenerateProtoFor(input);
            foreach (var property in input.GetType().GetProperties())
            {
                var setterForT = t.GetType().GetField(property.Name);
                var value = property.GetValue(input, null);
                setterForT.SetValue(t, value);
            }
            string data;
            using (var writer = new MemoryStream())
            {
                ProtoBuf.Serializer.NonGeneric.Serialize(writer, t);
                writer.Position = 0;
                using (var reader = new StreamReader(writer,Encoding.ASCII))
                {
                    data = reader.ReadToEnd();
                }
            }
            return data;
        }
    }

Usage Example

Example #1
0
        public void serialize_then_deserialize()
        {
            var serializer     = new Serializer();
            var jsonSerializer = new Ellemy.CQRS.Serializers.EllemyJsonSerializer();

            for (var i = 0; i < 35; i++)
            {
                Console.WriteLine("**************************");
                var testThing = new TestThing {
                    Guid = Guid.NewGuid(), Int = i, String = "Some STring" + i
                };
                var output    = serializer.Serialize(testThing);
                var json      = jsonSerializer.Serialize(testThing);
                var startedAt = DateTime.Now;
                var result    = (TestThing)serializer.Deserialize(output, typeof(TestThing));
                Console.WriteLine("took {0} milliseconds", DateTime.Now.Subtract(startedAt).TotalMilliseconds);

                var startedJsonAt = DateTime.Now;
                jsonSerializer.Deserialize(json, typeof(TestThing));
                Console.WriteLine("JSON took {0} milliseconds", DateTime.Now.Subtract(startedJsonAt).TotalMilliseconds);
                Console.WriteLine(result.Guid);
                Console.WriteLine(result.Int);
                Console.WriteLine(result.String);
            }
        }
All Usage Examples Of Ellemy.CQRS.Serializers.GoogleProtocolBuffersSerializer.Serializer::Serialize