public static System.ServiceModel.Channels.Binding GetClientBinding(System.ServiceModel.TransferMode transferMode)
            {
                var binding = new System.ServiceModel.Channels.CustomBinding();

                binding.Elements.Add(new System.ServiceModel.Channels.TextMessageEncodingBindingElement {
                    ReaderQuotas = XmlDictionaryReaderQuotas.Max
                });
                binding.Elements.Add(new System.ServiceModel.Channels.HttpTransportBindingElement {
                    MaxReceivedMessageSize = int.MaxValue, TransferMode = transferMode
                });
                return(binding);
            }
        public void EchoRoundtrip(Type startupType, System.ServiceModel.TransferMode clientTransferMode, int requestSize)
        {
            string testString = new string('a', requestSize);
            var    host       = ServiceHelper.CreateWebHostBuilder(_output, startupType).Build();

            using (host)
            {
                host.Start();
                var factory = new System.ServiceModel.ChannelFactory <ClientContract.IEchoService>(Startup.GetClientBinding(clientTransferMode),
                                                                                                   new System.ServiceModel.EndpointAddress(new Uri("http://localhost:8080/BasicWcfService/basichttp.svc")));
                var channel = factory.CreateChannel();
                var result  = channel.EchoString(testString);
                Assert.Equal(testString, result);
                ((System.ServiceModel.Channels.IChannel)channel).Close();
                factory.Close();
            }
        }