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 и потом его килять в конце метода, или я могу создать его один раз в конструкторе и потом использовать во всех методах не закрывая подключения?