main
 1using System;
 2using System.IO;
 3using Gorilla.Commons.Infrastructure.Container;
 4using gorilla.commons.utility;
 5using ProtoBuf;
 6using Rhino.Queues.Model;
 7
 8namespace presentation.windows.common
 9{
10    public class MessageHandler : Handler<Message>
11    {
12        DependencyRegistry registry;
13
14        public MessageHandler(DependencyRegistry registry)
15        {
16            this.registry = registry;
17        }
18
19        public void handle(Message item)
20        {
21            var payload = parse_payload_from(item);
22            registry
23                .get_all<Handler>()
24                .each(x => x.handle(payload));
25        }
26
27        object parse_payload_from(Message item)
28        {
29            using (var stream = new MemoryStream(item.Data))
30            {
31                return Serializer.NonGeneric.Deserialize(Type.GetType(item.Headers["type"]), stream);
32            }
33        }
34    }
35}