问题描述
- MSScriptControl.ScriptControl 组件中的Run() 方法求助!!!
-
MSScriptControl.ScriptControl 组件中的Run() 方法求助!!!问题描述:在.CS文件中利用Run方法调用JS脚本文件中的函数,返回值为NULL,请教大神们是啥原因啊?是因为Run方法的第一个函数名的参数不支持子函数么?该如何解决啊?
脚本文件jsfile.js 如下:
var JSEn = function (str) {
options = options || {};
this.log = options.log || false;
this.key = str;
};
JSEn.prototype.fun1 = function (str) {
return "aaa"+str;
};C#代码中调用脚本文件中的 JSEn.prototype.fun1方法,代码如下
private string ExecuteScript(string strJsfile, string[] argc)
{
MSScriptControl.ScriptControl scriptControl = new MSScriptControl.ScriptControl();
scriptControl.UseSafeSubset = true;
scriptControl.Language = "JScript";scriptControl.AddCode(strJsfile);
//调用过程如下
int ParamsLen = argc.Length;
object[] ParamsArg = new object[ParamsLen];
for (int i = 0; i < ParamsLen; i++)//参数赋值{ ParamsArg[i] = argc[i]; }
try
{
//此处的result经调试发现返回值为null!!!?????求原因
object result = scriptControl.Run("JSEn.fun1", ParamsArg);
return result.ToString();
}
catch (Exception ex)
{
string str = ex.Message;
}