public override void Evaluate(IScriptContext context) { _typeExpr.Evaluate(context); var type = (Type)context.Result; _callExpr.Evaluate(context); var arguments = (object[])context.Result; context.Result = RuntimeHost.Binder.BindToConstructor(type, arguments); }
//TODO: Refactor public override void Evaluate(IScriptContext context) { _constrExpr.Evaluate(context); var type = (Type)context.Result; _arrRank.Evaluate(context); var rank = Scripting.SSharp.CustomFunctions.ArrayFunc.FunctionDefinition.Invoke(null, (object[])context.Result); //(int)Convert.ChangeType(((object[])context.Result)[0], typeof(int), CultureInfo.CurrentCulture.NumberFormat); context.Result = Array.CreateInstance(type, (int[])rank); //long[] longRank = rank as long[]; //if (longRank != null) { // context.Result = Array.CreateInstance(type, longRank); // return; //} }