ScriptEngine rubyEngine;
//...
dynamic execution_result = rubyEngine.Execute(script, scope);
if (execution_result != null && !silent)
WriteResponce(execution_result.ToString());
Этот код генерирует InvalidCastException :
Невозможно привести объект типа 'SOMELIB.Graphics' к типу.
'SOMELIB.Object'.
Когда происходит сравнение:
execute_result! = Null
Если это сравнение удалено, тогда execute_result.ToString () вызывает то же исключение.
Я нашел обходной путь:
if (execution_result is SOMELIB.Graphics)
{
SOMELIB.Graphics g = execution_result as SOMELIB.Graphics;
WriteResponce(g.ToString());
return;
}
но я не понимаю, почему появляется это исключение и как его исправить.