【问题标题】:MSScriptControl 'Specified cast is not valid' when exposing an object to VBScript将对象公开给 VBScript 时,MSScriptControl '指定的转换无效'
【发布时间】:2010-11-02 16:25:37
【问题描述】:

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

【问题讨论】:

    标签: c# api vbscript scripting


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我也遇到过类似的问题。

      确保在类和方法上使用[ComVisible(true)]。 另外,让您的课程公开!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-13
        • 1970-01-01
        • 2011-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        相关资源
        最近更新 更多