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