Показать сообщение отдельно
Старый 17.07.2013, 01:44   #70  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
Посмотрел.

У меня смена EDT и добавление методов отрабатывает после Tools\Caches\Refresh elements (нашел просто методом тыка сперва подумав где может быть)
Ругаться про нововведения надоело - так что будем изучать и пилить
Да, действительно кеш в\Classes\SysOperationAttributedDataContractInfo\buildDataMemberMaps

Лазить в Tools\Caches\Refresh elements каждый раз лень, а может непривычно (но не суть) - по сему добавил сброс кеша в инкрементную компиляцию.

\Classes\SysCompilerOutput\compileForwardElement
X++:
public static client void compileForwardElement(DictClass _dictClass, Dictionary _dictionary, int _numOfClasses)
{
    #AOT
    ClassNode           classNode;
    DictClass           dictClassLoop;
    DictClass           childClass;
    int                 i;

    if (_dictClass)
    {
        classNode = infolog.findNode(#ClassesPath + #AOTDelimiter + _dictClass.name());
        // SysOperationAttributedDataContractInfo cache reset -->
        classFactory.globalObjectCache().remove('SysOperationAttributedDataContractInfo.buildDataMemberMaps', [_dictClass.id()]);
        // SysOperationAttributedDataContractInfo cache reset <--
        
        if (classNode)
        {
можете прилепить еще куда нибудь или сделать отдельный пункт в контекстном меню. в данном варианте инкрементная компиляция контракта (не контроллера) чистит кеш

Дополнение. Наверное даже лучше добавить сброс кеша всех контрактов на окончание компиляции. Тормозов компиляции это не добавит, а кнопочка F7 всё таки приятнее контекстного меню
\Classes\SysCompilerOutput\endCompilation
X++:
.....
           this.setEndFocus();
        }
    }

    // Notify the editors to allow them to update markings
    CompileOutputInfos::NotifyChanges();
    classFactory.globalObjectCache().clear('SysOperationAttributedDataContractInfo.buildDataMemberMaps');
}
выбирайте кому что нравится

Последний раз редактировалось db; 17.07.2013 в 02:08.
За это сообщение автора поблагодарили: mazzy (2), sukhanchik (4), Logger (3), -DocSerzh- (1), alex55 (1), S.Kuskov (2).