Мне также нужно было установить это свойство в коде, и после исследования выяснилось, что есть два способа сделать это программно.
Первый способ - создать элементы привязки непосредственно в коде и создать из них новую пользовательскую привязку, как описано в CustomBinding MSDN
// Create a custom binding that contains two binding elements.
ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.MaxPendingChannels = 100;
TcpTransportBindingElement tcpTransport = new TcpTransportBindingElement();
CustomBinding binding = new CustomBinding(reliableSession, tcpTransport);
второй способ, который я нашел, это получить ссылку на элементы привязки из существующей привязки, как описано здесь Как: настроить привязку, предоставляемую системой . Это самый лучший ответ.
Я пытался установить свойство ReliableSession в NetTcpBinding, но на самом деле это не было изменение свойства MaxPendingConnections, которое я ожидал. Изучив исходный код .NET для NetTcpBinding и ReliableSession, я обнаружил, что установка этого свойства для привязки выглядит так:
NetTcpBinding netTcpBinding = new NetTcpBinding(SecurityMode.None, true);
netTcpBinding.ReliableSession =
new OptionalReliableSession(
new ReliableSessionBindingElement()
{
MaxPendingChannels = 100
});
Фактически не устанавливает свойство MaxPendingChannels в привязке.
Я закончил тем, что создал привязку непосредственно из элементов привязки, так как хотел точно контролировать привязку