Показать сообщение отдельно
Старый 01.09.2016, 11:12   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
377 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Зачем нужен OrganizationService.Dispose?
CRM 2013
Библиотека Microsoft.Xrm.Client.dll содержит класс OrganizationService, упрощающий подключение к CRM.
Класс реализует интерфейс IDisposable и все примеры использования этого класса выглядят как то так:
Код:
using (service = new OrganizationService("CRM"))
{
    // use service
}
Но, как оказалось, вот такой код тоже работает:
Код:
var service = new OrganizationService("CRM");
service.Dispose();
var response = service.Execute<WhoAmIResponse>(new WhoAmIRequest());
Console.WriteLine(response.UserId);
Т.е. даже не смотря на вызов метода Dispose, сервис прекрасно продолжает работать.
Нужно ли тогда вообще использовать конструкцию using() { } или метод Dispose для класса OrganizationService, есть ли в этом смысл?

Собственно к чему вопрос... Если у меня есть кастомный WCF-сервис, стоит ли мне в каждом методе создавать новый экземпляр OrganizationService и потом его килять в конце метода, или я могу создать его один раз в конструкторе и потом использовать во всех методах не закрывая подключения?