2016-03-31 10 views
0

Ich habe eine Klasse in VB6, die viele Eigenschaften für Dateien enthält. Ich habe unseren Emailer auf C# -Code umgestellt. Die VB6-Dateiklasse wird viele Informationen enthalten, die für den Emailer nützlich sind.eine vb6-Eigenschaftenklasse in einen C# -Klassenkonstruktor übergeben?

So die Frage entstand: Gibt es eine Möglichkeit, die Klasse, die ich in VB6 habe, und schieben Sie es auf meinen C# -Emailer-Konstruktor? Ist das möglich?

In VB6-Code, habe ich die DLL in das Projekt mit COM-Interrupt verknüpft, und dann in VB6-Code kann ich etwas tun, wie ..

Dim fileObj As New FileProperties 
    ...fill out the object... 

Dim emailObj As New Emailer(fileObj) 
emailObj.SendEmail() 

aber wie würde C# wissen, welcher Datentyp zu akzeptieren Die Parameter?

Antwort

1

Sie können Konstruktoren nicht mit Parametern für COM verfügbar machen.

Idealerweise sollte sich Ihre FileProperties-Klasse in Ihrem C# -Code befinden und über COM zusammen mit Ihrer Emailer-Klasse verfügbar gemacht werden. Ihre E-Mail-Klasse würde eine Eigenschaft vom Typ FileProperties bereitstellen, die in Ihrem parameterlosen Konstruktor initialisiert würde.

In VB6 würden Sie

Dim emailObj As New Emailer 

tun und dann in FileProperties füllen mit

emailObj.FileProperties.Prop1 = ""