Повторное использование экземпляров класса WCF Binding

Я создаю NetTcpBinding-s на стороне клиента приложения в коде сразу после запуска приложения, а затем использую его для создания фабрики каналов через

new ChannelFactory<TService>(binding, address)

конструктор.

Правильно ли предварительно кэшировать эти экземпляры NetTcpBinding в некоторой коллекции List[NetTcpBinding], а затем использовать элементы этой коллекции для создания ChannelFactory несколько раз? WCF каждый раз автоматически сбрасывает время ожидания привязки и т. Д.?

Это вообще безопасно или безопаснее создавать новый экземпляр привязки для каждого клиентского вызова?

1 ответ

Ну... вы должны думать о связывании как о конфигурации, и не более того.

WCF каждый раз автоматически сбрасывает время ожидания привязки и т. Д.?

Не надо. Тайм-ауты - это свойства соединения / канала, которые устанавливаются на основе свойств привязки.

Это вообще безопасно или безопаснее создавать новый экземпляр привязки для каждого клиентского вызова?

Теоретически это безопасно, но имейте в виду, что если вы собираетесь использовать привязки экземпляров, то по умолчанию ChannelFactory не будет использовать кеш для хранения фабричных экземпляров (дорогая операция).

Другие вопросы по тегам