Ситуация
У меня есть клиентская библиотека, которая использует служебную шину Windows Azure AppFabric NetTcpRelayBinding для подключения к конечной точке. Клиентская библиотека размещается в приложении, которое не обязательно является .NET-приложением. В любом случае, о app.config не может быть и речи, а значит, все должно быть настроено в коде.
Machine.config — это один из вариантов, но лучше, если его можно будет избежать. Другим вариантом может быть локальный настраиваемый прокси-сервер или внешний сервер, но я хотел бы сначала изучить этот вариант, прежде чем радикально менять архитектуру.
С системными привязками проблем нет, но я не понял и не нашел решения, как в коде добавить следующую конфигурацию в ChannelFactory:
<extensions>
<bindingElementExtensions>
<add name="tcpRelayTransport" type="Microsoft.ServiceBus.Configuration.TcpRelayTransportElement, Microsoft.ServiceBus, Version=1.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</bindingElementExtensions>
<bindingExtensions>
<add name="netTcpRelayBinding" type="Microsoft.ServiceBus.Configuration.NetTcpRelayBindingCollectionElement, Microsoft.ServiceBus, Version=1.6.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</bindingExtensions>
</extensions>