Übergeben Sie ein array von vba nach c# verwenden von com-interop

Was ist die richtige Art und Weise zu übergeben Sie ein array von benutzerdefinierten Klassen von vba .net (speziell c#) mit com-interop?

Hier ist mein c# code. Wenn ich call-Methode1 von vba es andernfalls mit "Array oder benutzerdefinierter Typ erwartet" oder "- Funktion verwendet eine Automatisierung geben Sie in visual basic nicht unterstützt".

public class MyClass 
{
    public Method1(UserDefinedClass[] Parameters) { ... }
    public Method2(Object Parameters) { ... }
}

Ich gelesen habe, ein bisschen über die MarshallAsAttribute Klasse. Könnte dies das fehlende Stück in der c# - code?

Hier ist der vba-code, den ich verwende:

Dim udt As New UserDefinedClass
Dim myArray()
myArray(1) = udt
myClass.Method1(myArray)
myClass.Method2(myArray)
  • Wir brauchen ein bisschen mehr info hier. Könntest du ein VBA-definition von Art und einige code zeigt Ihnen den Aufruf der COM-Schnittstelle?
  • Hinzugefügt von vba-code.
  • Deine array-Deklaration ist die Deklaration ein array von Varianten - es sollte ein array deklarieren Ihre UserDefinedClass, z.B. "Dim myArray(0 Bis 3) UserDefinedClass"
  • Ich sollte erwähnt haben, dass. Ich habe versucht mit dem gleichen Ergebnis "- Funktion verwendet eine automation type not supported in vb'. Ich dachte wirklich, das Problem war die definition der Methode in c#, aber es ist durchaus möglich, das problem in den vba-code. Ich bin ganz neu VB.
InformationsquelleAutor Freddie | 2010-01-08
Schreibe einen Kommentar