|
![]() |
#1 |
Участник
|
Кстати кто что думает по поводу вот такого использования статических членов
https://docs.microsoft.com/en-us/dyn...-runbase-class т.е. создается глобальная статическая переменная - ссылка на класс. далее создается handler на таблицу - который проверяет заполнена ли эта глобальная переменная и вызывает метод(кстати тут по моему у них опечатка - должно быть if (myrunningInstance) X++: if (runningInstance)
{
myRunningInstance.myArchiveUserLog(_sender as SysUserLog);
} причем это будет никак не поймать, ибо в новой сессии хендлера уже не будет |
|
![]() |
#2 |
NavAx
|
Мне показалось, что singleton работает не в пределах сессии, а в пределах thread. Я пытался с его помощью передать параметры в отчет, так вот отчеты работают в другои потоке (возможно для запуска отчета создается новая сессия) и singleton у них будет свой, чистый.
С его помощью можно много чего реализовать, только понять, что присходит в сисетеме, будет все труднее. Пример: есть таблица и мы хотим получить, что то типа - X++: void update() { MyTable myTableOrig = this.orig(); super(); if (myTableOrig.MyField != this.MyField) { do something.... } } P.S. Extension подход только усложняет систему и ее поддержку. Последний раз редактировалось raz; 08.05.2017 в 09:50. |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
NavAx
|
А разве нет? За основу был взят такой код для передачи параметров в SSRS отчет, в отладчике было видно, что параметры в пределах одного thread передаются, но когда обращение было из отчета (data contract), то singleton был чист, при этом номер thread был другой.
Это легко проверить. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|