将对象暴露给VBScript时,MSScriptControl'指定的强制转换无效'

ano*_*ard 6 c# api vbscript scripting

我正在尝试为我的应用程序实现脚本功能.我正在使用下面的代码.每当我实例化一个新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()");
    }
}
Run Code Online (Sandbox Code Playgroud)

180*_*ION 2

我的猜测是,ApiExposed 类不是 COM 可见的 - VBScript 需要它才能与其交互。