我正在尝试为我的应用程序实现脚本功能。我正在使用下面的代码。每当我实例化一个新的Api
对象时,该应用程序应该退出(稍微测试一下:p)
但是,应用程序在script.AddObject(...)
崩溃并出现错误Specified cast is not valid.
这里是否缺少一步?
public class ApiExposed
{
public string ModuleName;
public void Exit()
{
System.Environment.Exit(0);
}
}
public class Api
{
ScriptControlClass script;
ApiExposed ApiObj;
public Api()
{
ApiObj = new ApiExposed();
script = new ScriptControlClass();
script.Language = "VBScript";
script.AddObject("tbapi", (object)ApiObj, true);
script.Eval("tbapi.Exit()");
}
}
答案 0 :(得分:3)
我的猜测是,ApiExposed类不是COM可见 - 它需要按顺序让VBScript与它进行交互。
答案 1 :(得分:1)
我遇到了类似的问题。
确保在类和方法上使用[ComVisible(true)]
。
另外,让你的班级PUBLIC!