System.Rtti.TVirtualInterface
Delphi
TVirtualInterface = class(TInterfacedObject, IInterface)
C++
class PASCALIMPLEMENTATION TVirtualInterface : public System::TInterfacedObject
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
class | public | System.Rtti.pas System.Rtti.hpp |
System.Rtti | System.Rtti |
Beschreibung
Stellt die Funktionalität für das Marshaling von Remote-Prozeduraufrufen bereit.
TVirtualInterface erstellt eine Implementierung eines Interface zur Laufzeit. Alle Interface-Methoden lösen ein OnInvoke-Ereignis aus (siehe TVirtualInterfaceInvokeEvent).
Die Hauptanwendungsbereich von TVirtualInterface ist das Senden von SOAP-Botschaften. Der SOAP-Server deklariert einen Dienst mit speziellen Funktionen. Beim WSDL-Import wird ein Delphi-Interface erstellt, das den Serverdienst "spiegelt". Auf der Clientseite wird zur Laufzeit eine Klasse erstellt, die das Delphi-Interface implementiert, das den Serverdienst wiederspiegelt (TVirtualInterface). Wird eine Methode dieser Klasse aufgerufen, wird der Aufruf in einen SOAP-Envelope verpackt, an den Server gesendet, decodiert und das Ergebnis an den Delphi-Client zurückgesendet.
TVirtualInterface verhält sich nicht wie eine normale Klasse. Jeder Instanz ist ein Referenzzähler zugeordnet, damit die Instanz sich automatisch freigeben kann. Der Konstruktor erhöht den Referenzzähler nicht. Eine TVirtualInterface-Instanz sollte sofort nach der Erstellung in eine Interface-Instanz umgewandelt werden (oder QueryInterface sollte verwendet werden).