AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.09.2016, 11:12   #1  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 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 и потом его килять в конце метода, или я могу создать его один раз в конструкторе и потом использовать во всех методах не закрывая подключения?
Старый 04.09.2016, 18:51   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Возможно, в методах по работе с данными проверяется состояние сервиса и они просто повторно инициализируют его после dispose. Проще всего провентилировать сборку рефлектором и посмотреть на реализацию dispose.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 21.10.2016, 11:24   #3  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
379 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Рефлектором смотрел, там используется Lasy, который вновь инстанциирует класс, если его нет или его убили вызовом Dispose.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Несколько вложений для письма. Нужен пример кода GetLucky Dynamics CRM: Разработка 1 19.08.2014 17:33
Нужен совет по биллингу agent5566 Dynamics CRM: Прочие вопросы 5 03.06.2011 12:31
Нужен совет Kirill_S Dynamics CRM: Прочие вопросы 4 05.03.2011 20:45
Права пользователя. en Dynamics CRM: Функционал 7 11.01.2006 18:04

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:12.