using System;
using MSScriptControl;
using ;
namespace ZZ
{
/// <summary>
/// Script type
/// </summary>
public enum ScriptLanguage
{
/// <summary>
/// JScript Script Language
/// </summary>
JScript,
/// <summary>
/// VBscript script language
/// </summary>
VBscript,
/// <summary>
/// javascript script language
/// </summary>
javascript
}
/// <summary>
/// Script running error proxy
/// </summary>
public delegate void RunErrorHandler();
/// <summary>
/// Script running is beyond the times
/// </summary>
public delegate void RunTimeoutHandler();
/// <summary>
/// ScriptEngine class
/// </summary>
public class ScriptEngine
{
private ScriptControl msc;
//Define the script running error event
public event RunErrorHandler RunError;
//Define the script running timeout event
public event RunTimeoutHandler RunTimeout;
/// <summary>
///Constructor
/// </summary>
public ScriptEngine():this()
{
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="language">Script type</param>
public ScriptEngine(ScriptLanguage language)
{
= new ScriptControlClass();
= true;
= ();
((DScriptControlSource_Event)).Error += new DScriptControlSource_ErrorEventHandler(ScriptEngine_Error);
((DScriptControlSource_Event)).Timeout += new DScriptControlSource_TimeoutEventHandler(ScriptEngine_Timeout);
}
/// <summary>
/// Run the Eval method
/// </summary>
/// <param name="expression">Expression</param>
/// <param name="codeBody">Function body</param>
/// <returns>Return value object</returns>
public object Eval(string expression,string codeBody)
{
(codeBody);
return (expression);
}
/// <summary>
/// Run the Eval method
/// </summary>
/// <param name="language">Script Language</param>
/// <param name="expression">Expression</param>
/// <param name="codeBody">Function body</param>
/// <returns>Return value object</returns>
public object Eval(ScriptLanguage language,string expression,string codeBody)
{
if( != language)
= language;
return Eval(expression,codeBody);
}
/// <summary>
/// Run the Run method
/// </summary>
/// <param name="mainFunctionName">Entry function name</param>
/// <param name="parameters">parameters</param>
/// <param name="codeBody">Function body</param>
/// <returns>Return value object</returns>
public object Run(string mainFunctionName,object[] parameters,string codeBody)
{
(codeBody);
return (mainFunctionName,ref para