Automatisierungsfehler in VB 6.0 aus einer C # -Klasse
-
06-07-2019 - |
Frage
Ich habe eine C # Klassenbibliothek erstellt und ich verwende es durch eine VB 6.0-Anwendung. Aber wenn ich versuche, jede Methode aufrufen (die einen String zurückgibt) es gibt mir ein Automatisierungsfehler. Die C # Klasse läuft ansonsten in Ordnung.
Jede Idee, warum?
Lösung
Wie fbinder sagt, sollten Sie stark Ihre Montage unterzeichnen, und einige Attribute verwenden. Die Eigenschaften, die wir (erfolgreich) verwenden sind:
[ComVisible( true )]
[ClassInterface( ClassInterfaceType.None )]
[Guid( "00000000-0000-0000-0000-000000000000" )]
[ComDefaultInterface( typeof( IExposedClass ) )]
public class ExposedClass : IExposedClass
{
//need a parameterless constructor - could use the default
public ExposedClass() { }
public string GetThing()
{
return "blah";
}
}
[ComVisible( true )]
[Guid( "00000000-0000-0000-0000-000000000000" )]
[InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
public interface IExposedClass
{
string GetThing();
}
Andere Tipps
Sie sollten stark Ihre Klassenbibliothek anmelden, registrieren Sie es mit regasm und setzen diese vor Ihrer Klassendefinition:
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("Class GUID")]
Außerdem sollten Sie eine Schnittstelle definieren die gewünschten Methoden aufzudecken. Die Schnittstelle sollte die Attribute haben:
[Guid("Interface GUID")]
[ComVisible(true)]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow