public MsmqIntegrationOutputChannel(MsmqIntegrationChannelFactory factory, EndpointAddress to, Uri via, bool manualAddressing) : base(factory, to, via, manualAddressing, factory.MessageVersion)
 {
     this.factory = factory;
     if (factory.IsMsmqX509SecurityConfigured)
     {
         this.certificateTokenProvider = factory.CreateX509TokenProvider(to, via);
     }
 }
        public override IChannelFactory <TChannel> BuildChannelFactory <TChannel>(BindingContext context)
        {
            if (context == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
            }
            if (typeof(TChannel) != typeof(IOutputChannel))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", System.ServiceModel.SR.GetString("ChannelTypeNotSupported", new object[] { typeof(TChannel) }));
            }
            MsmqChannelFactoryBase <IOutputChannel> factory = new MsmqIntegrationChannelFactory(this, context);

            MsmqVerifier.VerifySender <IOutputChannel>(factory);
            return((IChannelFactory <TChannel>)factory);
        }