Показать сообщение отдельно
Старый 10.06.2014, 20:51   #159  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
2012 R2 CU7
В классе RunBaseQuery_RU переменная queryrun объявлена, как SysQueryRun, но в методах самого класса она инициализируется, как QueryRun
X++:
protected final void initQueryRun()
{
    ...
    query       = this.initNewQuery();
    queryrun    = new QueryRun(query);
}
X++:
public boolean unpack(container packedClass)
{
    ...
            if (packedQuery)
            {
                queryrun = new QueryRun(packedQuery);
            }
    ...
}
Если создать наследника этого класса, то из Ах он будет работать прекрасно, но стоит поставить его в пакет, как тот (пакет) будет валиться с ошибкой неправильного присваивания типа переменной. Видимо, внутри CIL эта ситуация обрабатывается иначе.
Чтобы все заработало, переменную инициализировать, как
X++:
queryrun = new SysQueryRun(...)
__________________
Кононов Пётр
За это сообщение автора поблагодарили: Ivanhoe (5), gl00mie (2), S.Kuskov (1).