3 Stimmen

Wie kann ich eine benutzerdefinierte AbfrageSchnittstelle für .NET 3.5 erstellen?

Ich habe .NET Assembly COM ausgesetzt, und ich möchte eine benutzerdefinierte QueryInterface erstellen, andernfalls wird meine Klasse eine Menge von Schnittstellen implementieren müssen.

Derzeit sieht meine Implementierung folgendermaßen aus

[ComVisible(true]
[ProgId("SomeLib.SomeClass")]
[Guid("516E4529-38F1-44EE-B340-ABFA498DC922")]
public class MyClass : Interface1, Interface2......, etc

Ich möchte, dass meine Klasse diese Schnittstellen nicht implementiert, sondern beim Aufruf von QueryInterface ein Objekt zurückgibt, das die gewünschte Schnittstelle implementiert. Ich weiß, dass diese Funktion für .NET Framework 4.0 existiert (siehe ICustomQueryInterface ) Leider muss ich es in 3.5 machen

2 Stimmen

Sie können nicht, IUnknown wird von der CLR implementiert. Parcheando die v-Tabelle ist zu gruselig.

1voto

Gragus Punkte 84

Beginnend mit .NET 4.0, können Sie kann dies tun. Sie können verwenden ICustomQueryInterface für diese. Siehe auch eine Verwendungsbeispiel y ein anderes Muster .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X