/// <summary>
        /// 用于更改运行时属性值或插入自定义扩展对象(例如错误处理程序、消息或参数拦截器、安全扩展以及其他自定义扩展对象)。
        /// </summary>
        /// <param name="serviceDescription">服务说明。</param><param name="serviceHostBase">当前正在生成的宿主。</param>
        public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
        {
            if (serviceDescription == null)
                throw new ArgumentNullException("serviceDescription");

            if (serviceHostBase == null)
                throw new ArgumentNullException("serviceHostBase");

            var source = serviceDescription.Endpoints.Where(
                ep => ep.Contract.ContractType.IsAssignableFrom(_implementationType)).Select(ep => ep.Contract.Name).ToArray();

            var provider = new RabbitInstanceProvider(_workContextAccessor, _componentRegistration);
            foreach (var dispatcher2 in serviceHostBase.ChannelDispatchers.OfType<ChannelDispatcher>().SelectMany(dispatcher => dispatcher.Endpoints.Where(dispatcher2 => source.Contains(dispatcher2.ContractName))))
                dispatcher2.DispatchRuntime.InstanceProvider = provider;
        }
        /// <summary>
        /// 用于更改运行时属性值或插入自定义扩展对象(例如错误处理程序、消息或参数拦截器、安全扩展以及其他自定义扩展对象)。
        /// </summary>
        /// <param name="serviceDescription">服务说明。</param><param name="serviceHostBase">当前正在生成的宿主。</param>
        public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
        {
            if (serviceDescription == null)
            {
                throw new ArgumentNullException("serviceDescription");
            }

            if (serviceHostBase == null)
            {
                throw new ArgumentNullException("serviceHostBase");
            }

            var source = serviceDescription.Endpoints.Where(
                ep => ep.Contract.ContractType.IsAssignableFrom(_implementationType)).Select(ep => ep.Contract.Name).ToArray();

            var provider = new RabbitInstanceProvider(_workContextAccessor, _componentRegistration);

            foreach (var dispatcher2 in serviceHostBase.ChannelDispatchers.OfType <ChannelDispatcher>().SelectMany(dispatcher => dispatcher.Endpoints.Where(dispatcher2 => source.Contains(dispatcher2.ContractName))))
            {
                dispatcher2.DispatchRuntime.InstanceProvider = provider;
            }
        }