Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para utilizar un contador de referencias personalizado es necesario aplicar el atributo MarshalAsAttribute al parámetro o campo cuya referencia se va a calcular. El atributo identifica el contador de referencias que activa el contenedor correspondiente.
El contador de referencias personalizado implementa la interfaz ICustomMarshaler para proporcionar los contenedores adecuados al motor de tiempo de ejecución, creando el contador de referencias personalizado la primera vez que es necesario calcular las referencias de un argumento. Llama a los métodos MarshalNativeToManaged y MarshalManagedToNative del contador de referencias personalizado para activar el contenedor correcto y, así, controlar la llamada. En la siguiente tabla se describen todos los métodos que expone la interfaz ICustomMarshaler.
| Método de interfaz | Descripción |
|---|---|
MarshalNativeToManaged |
Devuelve un contenedor personalizado al que se puede llamar en tiempo de ejecución y que puede calcular las referencias de la interfaz no administrada pasada como argumento. El contador de referencias debe devolver una instancia del contenedor personalizado al que se puede llamar en tiempo de ejecución para ese tipo. |
MarshalManagedToNative |
Devuelve un contenedor COM personalizado al que se puede llamar y que puede calcular la referencia de la interfaz administrada pasada como argumento. El contador de referencias debe devolver una instancia del contenedor COM personalizado al que se puede llamar para ese tipo. |
CleanUpNativeData |
Proporciona al contador de referencias personalizado la oportunidad de realizar la limpieza de contenedores devueltos por el método MarshalManagedToNative. |
CleanUpManagedData |
Proporciona al contador de referencias personalizado la oportunidad de realizar la limpieza de contenedores devueltos por el método MarshalNativeToManaged. |
GetInstance |
Recupera una instancia del contador de referencias personalizado. Este método estático puede crear una nueva instancia del contador de referencias personalizado cada vez o puede usar siempre la misma si el contador de referencias no tiene ningún estado. El servicio de cálculo de referencias llama al método para crear el contador de referencias siempre que se marque un parámetro o un campo con UnmanagedType.CustomMarshaler. |
Vea también
Conceptos
Definir el tipo de cálculo de referencias
Utilizar un contador de referencias sustituto