Exemplo n.º 1
0
        /// <summary>
        /// Creates a new instance of the specified class from within the script engine and returns it.
        /// </summary>
        /// <param name="engine">The ActiveScriptEngine to create the instance from.</param>
        /// <param name="className">The name of the class to create an instance of.</param>
        /// <returns>The created instance.</returns>
        public static dynamic NewInstanceOf(this ActiveScriptEngine engine, string className)
        {
            if (engine == null)
            {
                throw new ArgumentNullException("engine");
            }

            if (engine.ProgId.Equals(VBScript.ProgId, StringComparison.OrdinalIgnoreCase))
            {
                return(engine.Evaluate("New " + className));
            }

            return(engine.Evaluate("new " + className + "()"));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Provides a generic overload for engine.Evaluate.
        /// This method will invoke Convert.ChangeType on the returned value to try convert it to type T.
        /// This provides a more easier way to get the value of a type you want.
        /// </summary>
        /// <typeparam name="T">The Type to convert the returned value of Evaluate to.</typeparam>
        /// <param name="engine">The ActiveScriptEngine to invoke Evaluate on.</param>
        /// <param name="code">The code to evaluate inside engine.</param>
        /// <returns>The value returned after the evaluation as type T.</returns>
        public static T Evaluate <T>(this ActiveScriptEngine engine, string code)
        {
            if (engine == null)
            {
                throw new ArgumentNullException("engine");
            }

            return((T)Convert.ChangeType(engine.Evaluate(code), typeof(T), CultureInfo.InvariantCulture));
        }
Exemplo n.º 3
0
        public void When_GenericEvaluate_is_called_with_a_null_engine()
        {
            // Arrange.
            ActiveScriptEngine engine = null;

            // Act.
            Action action = () => engine.Evaluate <object>("GetValue");

            // Assert.
            action.ShouldThrow <ArgumentNullException>();
        }