private static IWindsorContainer RegisterDependency()
        {
            var container = new WindsorContainer();

            container.RegisterAttibuteRegistration(typeof(ClientFactory).GetTypeInfo().Assembly);

            container.Register(
                Component.For <IDictionary <Type, IRecieveHandler> >().UsingFactoryMethod(
                    kernel =>
            {
                var handlerMap = new Dictionary <Type, IRecieveHandler>();

                var allHandlers = kernel.ResolveAll <IRecieveHandler>();
                foreach (var handler in allHandlers.ToArray())
                {
                    foreach (var handleCode in handler.HandleCodes)
                    {
                        handlerMap[handleCode] = handler;
                    }
                }

                return(handlerMap);
            }));

            return(container);
        }