Disminuye el contador de referencia de la interfaz especificada.
Espacio de nombres: System.Runtime.InteropServices
Ensamblado: mscorlib (en mscorlib.dll)

Sintaxis
Visual Basic (Declaración)
Public Shared Function Release ( _
pUnk As IntPtr _
) As Integer
Dim pUnk As IntPtr
Dim returnValue As Integer
returnValue = Marshal.Release(pUnk)
public static int Release (
IntPtr pUnk
)
public:
static int Release (
IntPtr pUnk
)
public static int Release (
IntPtr pUnk
)
public static function Release (
pUnk : IntPtr
) : int
Parámetros
- pUnk
Interfaz que se va a liberar.
Valor devuelto
Nuevo valor del contador de referencias en la interfaz especificada por el parámetro
pUnk.

Comentarios
Common Language Runtime administra el contador de referencias de un objeto COM, por lo que no es necesario utilizar este método directamente. Utilice este valor sólo para pruebas. En muy raras ocasiones, como cuando se prueba un contador de referencias personalizado, puede ser necesario manipular manualmente la duración de un objeto. Sólo los programas que llaman a Marshal.AddRef deben llamar a Release. Si se llama al método Release después de que el contador de referencias haya llegado a cero, se genera un comportamiento no definido.
Puede llamar a Marshal.GetComInterfaceForObject, Marshal.GetIUnknownForObject o Marshal.GetIDispatchForObject para obtener un valor de IntPtr que represente un puntero de interfaz IUnknown que se vaya a liberar. También puede utilizar estos métodos y el método Release en objetos administrados para liberar las interfaces COM representadas por el contenedor COM al que se puede llamar del objeto administrado. Si no está familiarizado con este tipo de contenedor, vea Contenedor COM al que se puede llamar.

Ejemplo
En el ejemplo de código siguiente se muestra cómo recuperar una interfaz IUnknown para un objeto administrado utilizando el método GetIUnknownForObject. A continuación, se libera a continuación el puntero de interfaz llamando al método Release.
Imports System.Runtime.InteropServices
Module Program
Sub Run()
' Dim an Integer object
Dim IntegerObject As Integer = 1
' Dim a pointer
Dim pointer As IntPtr
Console.WriteLine("Calling Marshal.GetIUnknownForObject...")
' Get the IUnKnown pointer for the Integer object
pointer = Marshal.GetIUnknownForObject(IntegerObject)
Console.WriteLine("Calling Marshal.Release...")
' Always call Marshal.Release to decrement the reference count.
Marshal.Release(pointer)
End Sub
Sub Main(ByVal args() As String)
Run()
End Sub
End Module
using System;
using System.Runtime.InteropServices;
class Program
{
static void Run()
{
// Create an int object
int obj = 1;
Console.WriteLine("Calling Marshal.GetIUnknownForObject...");
// Get the IUnKnown pointer for the Integer object
IntPtr pointer = Marshal.GetIUnknownForObject(obj);
Console.WriteLine("Calling Marshal.Release...");
// Always call Marshal.Release to decrement the reference count.
Marshal.Release(pointer);
}
static void Main(string[] args)
{
Run();
}
}

Seguridad de .NET Framework

Plataformas
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

Información de versión
.NET Framework
Compatible con: 2.0, 1.1, 1.0
.NET Compact Framework
Compatible con: 2.0

Vea también