Цитата:
Сообщение от
gl00mie
К слову, о SysMailer: вроде в SP2 это исправили, но раньше в нем был один баг
Не знаю на каком этапе это появилось, я смотрю в AX2009, но кажется есть там ещё один баг.
Метод new в в SysMailer делает assert в начале, так что его как бы можно вызывать уже не делая это в своем коде. Только они забыли про параметр по-умолчанию.
X++:
void new(COM c = new COM('CDO.Message'))
{
InteropPermission permission = new InteropPermission(InteropKind::ComInterop);
;
permission.assert();
//пропущено
}
Тут и происходит ошибка, если вызвать его из своего кода без параметров и предварительного assert-а.
Должно быть что-то вроде:
X++:
void new(COM c = null)
{
InteropPermission permission = new InteropPermission(InteropKind::ComInterop);
;
permission.assert();
if (prmIsDefault(c))
c = new COM('CDO.Message');
//пропущено
}