2009-06-13 8 views
5

Próbuję zaimplementować obsługę skryptów w mojej aplikacji. Używam poniższego kodu. Ilekroć wystąpienie nowego Api obiekt, aplikacja ma rzucić (trochę testowania coś: P)Określona obsada MSScriptControl nie jest prawidłowa podczas eksponowania obiektu na VBScript

Jednak awarii aplikacji na script.AddObject(...) z błędem Specified cast is not valid. jest jakiś krok Brakuje mi tutaj?

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()"); 
    } 
} 

Odpowiedz

3

Moje przypuszczenie to, że ApiExposed klasa nie jest COM widoczne - będzie musiała być w porządku dla VBScript do interakcji z nim.

1

Miałem podobne problemy z tym.

Upewnij się, że używasz [ComVisible(true)] dla klasy i metod. Uczyń również swoją klasę PUBLICZNĄ!

Powiązane problemy