Hallo Leute,
tatsächlich mal ein reales Problem und nicht eines, was ich zum Zeitvertreib versuche:
Wir schreiben ein neues DLL in C#, allerdings müsste da auf ein Teil der VB6-Funktion aufgerufen werden.
Leider klappt das mit dem Vererben und überschreiben nicht so wie im Lehrbuch, will heissen:
Ich kann die Klasse, welche im VB6 clsDetailAkt heisst, entweder als Interface übergeben oder als Class namens clsDetailAktClass, allerdings motzt er da:
"Interop Type can not be embedded...'
Wenn ichs als Interface nehme, kann ich dann natürlich nichts überschreiben, wenn ichs als Class implementiere kommt obiger Fehler.
Was ich noch als Idee hatte, war folgendes:
Allerdings wäre das Ziel, dass UpdateAktivity komplett überschrieben wird. Wenn es UpdateAktivity taufe, also gleich wie in der Base-Klasse, scheint dies aufgerufen zu werden und nicht meine Abwandlung.
Gibts da irgend eine saubere Lösung, wie man so was machen könnte?
Wie immer vielen Dank im Voraus
Müller Matthias
tatsächlich mal ein reales Problem und nicht eines, was ich zum Zeitvertreib versuche:
Wir schreiben ein neues DLL in C#, allerdings müsste da auf ein Teil der VB6-Funktion aufgerufen werden.
Leider klappt das mit dem Vererben und überschreiben nicht so wie im Lehrbuch, will heissen:
Ich kann die Klasse, welche im VB6 clsDetailAkt heisst, entweder als Interface übergeben oder als Class namens clsDetailAktClass, allerdings motzt er da:
"Interop Type can not be embedded...'
Wenn ichs als Interface nehme, kann ich dann natürlich nichts überschreiben, wenn ichs als Class implementiere kommt obiger Fehler.
Was ich noch als Idee hatte, war folgendes:
Code:
public static class abgeleitet
{
public static bool UpdateAktivity2(this clsDetailAkt t)
{
///Mach irgendwas
return t.UpdateAktivity();
}
}
Allerdings wäre das Ziel, dass UpdateAktivity komplett überschrieben wird. Wenn es UpdateAktivity taufe, also gleich wie in der Base-Klasse, scheint dies aufgerufen zu werden und nicht meine Abwandlung.
Gibts da irgend eine saubere Lösung, wie man so was machen könnte?
Wie immer vielen Dank im Voraus
Müller Matthias