public override IChannelFactory <TChannel> BuildChannelFactory <TChannel>(BindingContext context) { var clientCredentials = context.BindingParameters.OfType <ClientCredentials>().SingleOrDefault(); if (clientCredentials == null || clientCredentials.ClientCertificate == null || clientCredentials.ClientCertificate.Certificate == null) { throw new InvalidOperationException("No Client certificate was configured."); } var innerFactory = context.BuildInnerChannelFactory <IRequestChannel>(); var factory = new SignatureCaseChannelFactory(innerFactory, clientCredentials.ClientCertificate.Certificate, _stsCertificate); return((IChannelFactory <TChannel>)factory); }
public SignatureCaseChannel(SignatureCaseChannelFactory channelManager, IRequestChannel innerChannel) : base(channelManager) { if (channelManager == null) { throw new ArgumentNullException("channelManager"); } if (innerChannel == null) { throw new ArgumentNullException("innerChannel"); } _channelManager = channelManager; _innerChannel = innerChannel; }