SoFunction
Updated on 2025-03-01

C# uses ScriptControl to dynamically execute JS and VBS scripts


using MSScriptControl;
namespace zz
{
    /// <summary>
/// scriptengine class
    /// </summary>
    public class ScriptEngine
    {
        private ScriptControl msc;
        /// <summary>
/// Constructor
        /// </summary>
/// <param name="language">Script type,VBscript\JavaScript</param>
        public ScriptEngine(string language)
        {
            msc = new ScriptControlClass();
            = true;
            = language;
            ((DScriptControlSource_Event)msc).Error += new DScriptControlSource_ErrorEventHandler(ScriptEngine_Error);
            ((DScriptControlSource_Event)msc).Timeout += new DScriptControlSource_TimeoutEventHandler(ScriptEngine_Timeout);
        }
        /// <summary>
/// Run the eval method
        /// </summary>
/// <param name="expression">expression</param>
/// <returns>Return value object</returns>
        public object eval(string expression)
        {
            return (expression);
        }
        /// <summary>
/// Run the run method
        /// </summary>
/// <param name="mainfunctionname">entertainment function name</param>
/// <param name="parameters">parameters</param>
/// <returns>Return value object</returns>
        public object Run(string mainFunctionName, object[] parameters)
        {
            return (mainFunctionName, ref parameters);
        }
        /// <summary>
/// Add the script to be executed
        /// </summary>
        /// <param name="Code"></param>
        public void AddCode(string Code)
        {
            (Code);
        }
        /// <summary>
/// parse and run
        /// </summary>
/// <param name="Code">Code</param>
        public void ExecuteStatement(string Code)
        {
            (Code);
        }
        /// <summary>
/// Give up all script code and objects that have been added to scriptcontrol
        /// </summary>
        public void Reset()
        {
            ();
        }
        /// <summary>
/// Get or set the script language
        /// </summary>
        public string Language
        {
            get { return ; }
            set { = value; }
        }
        /// <summary>
/// Get or set the script execution time in milliseconds
        /// </summary>
        public int Timeout
        {
            get { return ((IScriptControl)msc).Timeout; }
            set { ((IScriptControl)msc).Timeout = value; }
        }
        /// <summary>
/// Set whether to display user interface elements
        /// </summary>
        public bool AllowUI
        {
            get { return ; }
            set { = value; }
        }
        /// <summary>
/// Whether the host application has confidentiality requirements
        /// </summary>
        public bool UseSafeSubset
        {
            get { return ; }
            set { = true; }
        }
        private void ScriptEngine_Error()
        {
//Error event
        }
        private void ScriptEngine_Timeout()
        {
//Timeout event
        }
    }
}