![]() |
#8 |
Мрачный тип
|
Быть может уже кто-нибудь сделал подобное, но рискну выложить ...
В RunBase добавляем метод X++: boolean checkContainmentTypes(container a, container b) { int i; if(conlen(a) != conlen(b)) return false; for(i = 1;i<=conlen(a);i++) { if(typeof(conpeek(a,i)) != typeof(conpeek(b,i))) return false; } return true; } X++: public container pack() { return [#list]; } X++: public boolean unpack(container packedClass) { if(this.checkContainmentTypes([#list], packedClass)) [#list] = packedClass; else info(@'Сохраненный набор параметров для данного объекта не совпал по структуре с требуемым - значения восстановлены по умолчанию.'); this.init(); return true; } Не болит голова о мусоре в SysLastValue - его просто не будет, ибо перезатрется . Не болит голова о необходимости чистить SysLastValue - ибо просто не от чего его чистить. P.S. И никакого хакерства и нелепых телодвижений по чистке всякого от всякого P.P.S. И эцилоп не будет бить по ночам ... никогда ...
__________________
Мы летаем, кружимся, нагоняем ужасы ... Последний раз редактировалось TasmanianDevil; 24.02.2009 в 14:25. |
|
|
За это сообщение автора поблагодарили: EVGL (2), aidsua (1). |
Теги |
pack, runbase, unpack |
|
![]() |
||||
Тема | Ответов | |||
следуюший затык pack/unpack | 20 | |||
Как работают Pack и UnPack ? | 4 | |||
Как удалить сохраненные данные методов pack()/unpack() ? | 23 | |||
pack\unpack | 2 | |||
Русская локализация Axapta 3 ? | 59 |
|