Referencia de API
Documentacion completa de la clase FoxBridge y los proxies de coleccion que genera dinamicamente.
Clase FoxBridge
La unica clase que necesitas instanciar. Todos los demas objetos son proxies generados internamente.
loBridge = NEWOBJECT("FoxBridge", "FoxBridge.prg") | Metodo / Propiedad | Retorna | Descripcion |
|---|---|---|
Create(typeName [, p1..p10]) | Proxy | Instancia un tipo .NET. typeName puede ser el nombre simple, un Qualified Assembly Name (con coma) o un tipo generico (List<String>). |
Static(typeName) | Proxy | Devuelve un proxy para acceder a los miembros estaticos de un tipo (metodos, propiedades, campos de clase). |
LoadAssembly(path) | L (.T./.F.) | Carga una DLL .NET en el contexto de ejecucion. Necesario antes de Create() con tipos de esa DLL. |
GetLastError() | C | Retorna el mensaje del ultimo error .NET. Se limpia automaticamente tras cada llamada exitosa. |
TypeExists(typeName) | L | Comprueba si un tipo existe sin lanzar excepcion. Util para deteccion segura de DLLs. |
GetObjectCount() | N | Numero de objetos .NET vivos en el heap. Util para detectar fugas de memoria. |
Ping() | C ("Pong") | Verifica que la DLL nativa esta cargada y responde. Usar al inicio para diagnostico. |
SetDebug(.T./.F.) | Activa/desactiva el log detallado de llamadas a la DLL nativa (visible en DebugView). |
Objetos proxy (instancias .NET)
Cada objeto creado con Create() o Static() es un proxy FoxBridge. Estos son los metodos universales disponibles en todos los proxies.
| Metodo | Descripcion |
|---|---|
MetodoNET([args]) | Cualquier metodo publico del tipo .NET subyacente. FoxBridge resuelve sobrecargas automaticamente. |
.Propiedad | Lectura de cualquier propiedad publica. Si devuelve un objeto, el resultado es otro proxy. |
.Propiedad = valor | Escritura de propiedades de lectura/escritura. |
GetHandle() | Retorna el handle interno (entero) del objeto .NET. Util para comparar si dos proxies apuntan al mismo objeto. |
Proxy de List<T> y Array
Cuando Create() detecta que el tipo es una lista o array, devuelve un proxy con esta interfaz.
| Metodo | Descripcion |
|---|---|
Count() | Numero de elementos en la coleccion. |
Item(n) | Elemento en posicion n (base-1). Devuelve escalar o proxy segun el tipo. |
GetObject(n) | Como Item(n) pero garantiza devolver un proxy aunque el elemento sea un escalar. Usar cuando el elemento es un objeto .NET. |
Add(valor) | Agrega un elemento al final. |
Remove(valor) | Elimina la primera ocurrencia del valor. |
Proxy de Dictionary<K,V>
Cuando Create() detecta que el tipo es un diccionario, devuelve un proxy con esta interfaz.
| Metodo | Descripcion |
|---|---|
Set(clave, valor) | Establece o sobreescribe una clave. |
Get(clave) | Retorna el valor escalar de la clave. |
GetObject(clave) | Retorna el valor como proxy (cuando el valor es un objeto .NET). |
Contains(clave) | Retorna .T. si la clave existe. |
Remove(clave) | Elimina la clave y su valor. |
Manejo de errores
FoxBridge propaga las excepciones .NET como errores VFP. El patron recomendado es 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 Recuerda liberar los proxies Cada proxy FoxBridge mantiene una referencia a un objeto en el heap .NET. Asignar = .NULL. libera esa referencia e invoca el GC de .NET.
Volver a ejemplos: Ejemplos ->