Ich habe eine .NET-Assembly, in C# geschrieben. Es ist ComVisible markiert, hat eine GUID, ist signiert, regasm'd (/ codebase). Ich habe formal keine Schnittstelle für den COM-Teil definiert.Wie Debuggen "Falsche Anzahl der Argumente oder ungültige Zuweisung von Eigenschaften" VBScript .NET Interop
Ich benutze diese Baugruppe über VBscript.
Es gibt eine überladene Methode - eine Form nimmt ein einzelnes String-Argument, und die zweite nimmt zwei Strings. Beide geben einen anderen .NET-Typ von derselben Assembly zurück. Ich nenne es so:
set foo = WScript.CreateObject("Prog.Id")
' the following succeeds
set bar = foo.Method1("string")
' the following fails
set baz = foo.Method1("string1", "string2")
Der erste Aufruf von Methode1 ist erfolgreich. Der zweite schlägt fehl mit "Falsche Anzahl der Argumente oder ungültige Zuweisung von Eigenschaften".
Wie kann ich dies debuggen?
In Tests, wenn ich eine hirntot einfache .NET-Klasse mit Überladungen wie folgt definieren, kann ich es aus VBScript aufrufen, kein Problem. Es gibt etwas anderes an meiner "echten" Versammlung, die das zum Scheitern bringt. Wie finde ich heraus, was es ist?
Ah, ja, ich denke das ist die Antwort. – Cheeso