/// <summary>
        ///
        /// </summary>
        /// <param name="serviceLocator"></param>
        /// <param name="listenManager"></param>
        /// <param name="descriptorManager"></param>
        public DefaultServiceDispatcher(Func <string, object> serviceLocator, IServiceDispatchListenerManager listenManager, IServiceDescriptorManager descriptorManager)
        {
            Guard.NotNull(serviceLocator, "serviceLocator");
            Guard.NotNull(descriptorManager, "descriptorManager");
            Guard.NotNull(listenManager, "listenManager");

            ServiceLocator    = serviceLocator;
            DescriptorManager = descriptorManager;
            ListenManager     = listenManager;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="serviceLocator"></param>
        /// <param name="listenManager"></param>
        /// <param name="descriptorManager"></param>
        public DefaultServiceDispatcher(Func<string, object> serviceLocator, IServiceDispatchListenerManager listenManager, IServiceDescriptorManager descriptorManager)
        {
            Guard.NotNull(serviceLocator, "serviceLocator");
            Guard.NotNull(descriptorManager, "descriptorManager");
            Guard.NotNull(listenManager, "listenManager");

            ServiceLocator = serviceLocator;
            DescriptorManager = descriptorManager;
            ListenManager = listenManager;
        }