protected internal override void InitializeFrom(Binding binding)
        {
            base.InitializeFrom(binding);
            MsmqBindingBase base2 = (MsmqBindingBase)binding;

            this.DeadLetterQueue = base2.DeadLetterQueue;
            if (base2.CustomDeadLetterQueue != null)
            {
                this.CustomDeadLetterQueue = base2.CustomDeadLetterQueue;
            }
            this.Durable                = base2.Durable;
            this.ExactlyOnce            = base2.ExactlyOnce;
            this.MaxReceivedMessageSize = base2.MaxReceivedMessageSize;
            this.MaxRetryCycles         = base2.MaxRetryCycles;
            if (!base2.ReceiveContextEnabled)
            {
                this.ReceiveContextEnabled = base2.ReceiveContextEnabled;
            }
            this.ReceiveErrorHandling = base2.ReceiveErrorHandling;
            this.ReceiveRetryCount    = base2.ReceiveRetryCount;
            this.RetryCycleDelay      = base2.RetryCycleDelay;
            this.TimeToLive           = base2.TimeToLive;
            this.UseSourceJournal     = base2.UseSourceJournal;
            this.UseMsmqTracing       = base2.UseMsmqTracing;
            if (base2.ValidityDuration != MsmqDefaults.ValidityDuration)
            {
                this.ValidityDuration = base2.ValidityDuration;
            }
        }
        protected internal override void InitializeFrom(Binding binding)
        {
            base.InitializeFrom(binding);
            MsmqBindingBase msmqBinding = (MsmqBindingBase)binding;


            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.DeadLetterQueue, msmqBinding.DeadLetterQueue);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.CustomDeadLetterQueue, msmqBinding.CustomDeadLetterQueue);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.Durable, msmqBinding.Durable);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ExactlyOnce, msmqBinding.ExactlyOnce);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxReceivedMessageSize, msmqBinding.MaxReceivedMessageSize);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxRetryCycles, msmqBinding.MaxRetryCycles);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ReceiveContextEnabled, msmqBinding.ReceiveContextEnabled);

            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ReceiveErrorHandling, msmqBinding.ReceiveErrorHandling);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ReceiveRetryCount, msmqBinding.ReceiveRetryCount);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.RetryCycleDelay, msmqBinding.RetryCycleDelay);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TimeToLive, msmqBinding.TimeToLive);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.UseSourceJournal, msmqBinding.UseSourceJournal);
            SetPropertyValueIfNotDefaultValue(ConfigurationStrings.UseMsmqTracing, msmqBinding.UseMsmqTracing);

            // SetPropertyValueIfNotDefaultValue won't detect defaults correctly through type conversion, check explicitly
            if (msmqBinding.ValidityDuration != MsmqDefaults.ValidityDuration)
            {
                this.ValidityDuration = msmqBinding.ValidityDuration;
            }
        }
        protected override void OnApplyConfiguration(Binding binding)
        {
            MsmqBindingBase base2 = (MsmqBindingBase)binding;

            if (this.CustomDeadLetterQueue != null)
            {
                base2.CustomDeadLetterQueue = this.CustomDeadLetterQueue;
            }
            base2.DeadLetterQueue        = this.DeadLetterQueue;
            base2.Durable                = this.Durable;
            base2.ExactlyOnce            = this.ExactlyOnce;
            base2.MaxReceivedMessageSize = this.MaxReceivedMessageSize;
            base2.MaxRetryCycles         = this.MaxRetryCycles;
            base2.ReceiveContextEnabled  = this.ReceiveContextEnabled;
            base2.ReceiveErrorHandling   = this.ReceiveErrorHandling;
            base2.ReceiveRetryCount      = this.ReceiveRetryCount;
            base2.RetryCycleDelay        = this.RetryCycleDelay;
            base2.TimeToLive             = this.TimeToLive;
            base2.UseSourceJournal       = this.UseSourceJournal;
            base2.UseMsmqTracing         = this.UseMsmqTracing;
            base2.ValidityDuration       = this.ValidityDuration;
        }