Повторное использование экземпляров класса WCF Binding
Я создаю NetTcpBinding-s на стороне клиента приложения в коде сразу после запуска приложения, а затем использую его для создания фабрики каналов через
new ChannelFactory<TService>(binding, address)
конструктор.
Правильно ли предварительно кэшировать эти экземпляры NetTcpBinding в некоторой коллекции List[NetTcpBinding], а затем использовать элементы этой коллекции для создания ChannelFactory несколько раз? WCF каждый раз автоматически сбрасывает время ожидания привязки и т. Д.?
Это вообще безопасно или безопаснее создавать новый экземпляр привязки для каждого клиентского вызова?
1 ответ
Ну... вы должны думать о связывании как о конфигурации, и не более того.
WCF каждый раз автоматически сбрасывает время ожидания привязки и т. Д.?
Не надо. Тайм-ауты - это свойства соединения / канала, которые устанавливаются на основе свойств привязки.
Это вообще безопасно или безопаснее создавать новый экземпляр привязки для каждого клиентского вызова?
Теоретически это безопасно, но имейте в виду, что если вы собираетесь использовать привязки экземпляров, то по умолчанию ChannelFactory
не будет использовать кеш для хранения фабричных экземпляров (дорогая операция).