Показать сообщение отдельно
Старый 26.07.2007, 18:04   #7  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Да. Только не забывайте про trustworthy computing и возможность code injection. В 4.0 рекомендуется вызывать ExecutePermission.assert():

X++:
    try
    {
        permission = new ExecutePermission();
        if (permission == null)
            return ...;

        pseudoFunc = "static real func() { return " + expression + "; }";

        permission.assert();

        if(comp.compile(pseudoFunc))
        {
            result = runBuf(expression);
        }
        else
        {
            ...
        }
        CodeAccessPermission::revertAssert();
    }
    catch (Exception::Error)
    {
        ...
    }