Показать сообщение отдельно
Старый 08.05.2017, 09:47   #3  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,496 / 1071 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Мне показалось, что singleton работает не в пределах сессии, а в пределах thread. Я пытался с его помощью передать параметры в отчет, так вот отчеты работают в другои потоке (возможно для запуска отчета создается новая сессия) и singleton у них будет свой, чистый.
С его помощью можно много чего реализовать, только понять, что присходит в сисетеме, будет все труднее.

Пример: есть таблица и мы хотим получить, что то типа -
X++:
void update()
{
    MyTable myTableOrig = this.orig();

    super();

    if (myTableOrig.MyField != this.MyField)
    {
        do something....
    }
}
Можно в pre update положить в singleton orig и в post update сделать сравнение и do something.

P.S. Extension подход только усложняет систему и ее поддержку.

Последний раз редактировалось raz; 08.05.2017 в 09:50.