Я создал прокси веб-сервиса с, "добавьте веб-ссылочную" опцию VS 2008 (c#).
Сгенерированный класс происходит из SoapHttpClientProtocol
Я могу сохранить только один экземпляр своего прокси в одиночном элементе? Действительно ли это ориентировано на многопотоковое исполнение? Есть ли состояние между вызовами, которые препятствовали бы тому, чтобы я делал это?
Нет. Это не потокобезопасный. чтобы разрешить вызовы, клиент должен находиться в открытом состоянии. Простой сценарий, в котором один поток выполняет client.Close (), а другой пытается вызвать метод, завершится ошибкой.
MSDN не упоминает , что он потокобезопасен:
Thread Safety
Этот тип является потокобезопасным.
Класс безопасен, объект не упоминается.
Но можно с уверенностью сказать, что он не потокобезопасный - нет объект в библиотеке .NET является потокобезопасным.
(По крайней мере, i '
По этой ссылке: http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soaphttpclientprotocol.aspx
внизу в разделе «потокобезопасность» говорится, что этот тип потокобезопасен. Однако я не знаю, будет ли использование его как синглтона потокобезопасным.