IR
irwinrodriguez.dev
Zuruck zur Dokumentation

API-Referenz

Vollstandige Dokumentation der FoxBridge-Klasse und der dynamisch generierten Sammlungs-Proxys.

FoxBridge-Klasse

Die einzige Klasse, die Sie instanziieren mussen. Alle anderen Objekte sind intern generierte Proxys.

loBridge = NEWOBJECT("FoxBridge", "FoxBridge.prg")
Methode / Eigenschaft Ruckgabe Beschreibung
Create(typeName [, p1..p10]) Proxy Instanziiert einen .NET-Typ. typeName kann ein einfacher Name, ein qualifizierter Assembly-Name (mit Komma) oder ein generischer Typ sein.
Static(typeName) Proxy Gibt einen Proxy zuruck, um auf statische Mitglieder eines Typs zuzugreifen.
LoadAssembly(path) L (.T./.F.) Ladt eine .NET-DLL in den Ausfuhrungskontext. Erforderlich vor Create() mit Typen dieser DLL.
GetLastError() C Gibt die letzte .NET-Fehlermeldung zuruck. Wird nach jedem erfolgreichen Aufruf automatisch geleert.
TypeExists(typeName) L Pruft ob ein Typ existiert, ohne eine Ausnahme auszulosen. Nutzlich fur die sichere DLL-Erkennung.
GetObjectCount() N Anzahl der lebenden .NET-Objekte im Heap. Nutzlich zur Erkennung von Speicherlecks.
Ping() C ("Pong") Pruft ob die native DLL geladen ist und antwortet. Zur Diagnose beim Start verwenden.
SetDebug(.T./.F.) Aktiviert/deaktiviert das detaillierte Protokoll der nativen DLL-Aufrufe (sichtbar in DebugView).

Proxy-Objekte (.NET-Instanzen)

Jedes mit Create() oder Static() erstellte Objekt ist ein FoxBridge-Proxy. Dies sind die universellen Methoden, die auf allen Proxys verfugbar sind.

Methode Beschreibung
MetodoNET([args]) Jede offentliche Methode des zugrunde liegenden .NET-Typs. FoxBridge lost Uberladungen automatisch auf.
.Propiedad Lesen einer beliebigen offentlichen Eigenschaft. Wenn sie ein Objekt zuruckgibt, ist das Ergebnis ein weiterer Proxy.
.Propiedad = valor Schreiben von Lese-/Schreib-Eigenschaften.
GetHandle() Gibt das interne Handle (Ganzzahl) des .NET-Objekts zuruck. Nutzlich um zu prufen ob zwei Proxys auf dasselbe Objekt zeigen.

List<T>- und Array-Proxy

Wenn Create() erkennt, dass der Typ eine Liste oder ein Array ist, gibt es einen Proxy mit dieser Schnittstelle zuruck.

Methode Beschreibung
Count()Anzahl der Elemente in der Sammlung.
Item(n)Element an Position n (1-basiert). Gibt Skalar oder Proxy zuruck, je nach Typ.
GetObject(n)Wie Item(n), gibt aber garantiert einen Proxy zuruck, auch wenn das Element ein Skalar ist. Verwenden wenn das Element ein .NET-Objekt ist.
Add(valor)Fugt ein Element am Ende hinzu.
Remove(valor)Entfernt das erste Vorkommen des Werts.

Dictionary<K,V>-Proxy

Wenn Create() erkennt, dass der Typ ein Dictionary ist, gibt es einen Proxy mit dieser Schnittstelle zuruck.

Methode Beschreibung
Set(clave, valor)Setzt oder uberschreibt einen Schlussel.
Get(clave)Gibt den skalaren Wert des Schlussels zuruck.
GetObject(clave)Gibt den Wert als Proxy zuruck (wenn der Wert ein .NET-Objekt ist).
Contains(clave)Gibt .T. zuruck wenn der Schlussel existiert.
Remove(clave)Entfernt den Schlussel und seinen Wert.

Fehlerbehandlung

FoxBridge propagiert .NET-Ausnahmen als VFP-Fehler. Das empfohlene Muster ist TRY/CATCH.

TRY
    loObj = loBridge.Create("Tipo.Que.No.Existe")
    loObj.HacerAlgo()
CATCH TO loEx
    ? "Tipo de error:", loEx.ErrorNo
    ? "Mensaje:      ", loEx.Message   && contiene el mensaje de .NET
    ? "Ultimo error: ", loBridge.GetLastError()
ENDTRY
Denken Sie daran Proxys freizugeben Jeder FoxBridge-Proxy halt eine Referenz auf ein Objekt im .NET-Heap. Das Zuweisen von = .NULL. gibt diese Referenz frei und ruft den .NET-GC auf.

Zuruck zu den Beispielen: Beispiele ->