Compartir a través de


IMetaDataEmit::SetClassLayout (Método)

Completa el diseño de los campos de una clase que ha definido una llamada anterior al método DefineTypeDef.

Sintaxis

HRESULT SetClassLayout (  
    [in]  mdTypeDef           td,
    [in]  DWORD               dwPackSize,
    [in]  COR_FIELD_OFFSET    rFieldOffsets[],
    [in]  ULONG               ulClassSize
);  

Parámetros

td
[in] Token de mdTypeDef que especifica la clase que se va a diseñar.

dwPackSize
[in] Tamaño de empaquetado: 1, 2, 4, 8 o 16 bytes. El tamaño de empaquetado es el número de bytes entre campos adyacentes.

rFieldOffsets
[in] Matriz de estructuras COR_FIELD_OFFSET, cada una de las cuales especifica un campo de la clase y el desplazamiento del campo dentro de la clase. Finalice la matriz con mdTokenNil.

ulClassSize
[in] Tamaño en bytes de la clase.

Comentarios

La clase se define inicialmente llamando al método IMetaDataEmit::DefineTypeDef y especificando uno de los tres diseños para los campos de la clase: automático, secuencial o explícito. Normalmente, usaría el diseño automático y dejaría que el runtime elija la mejor manera de diseñar los campos.

Pero es posible que quiera que los campos se establezcan según la disposición que usa el código no administrado. En este caso, elija el diseño secuencial o explícito y llame a SetClassLayout para completar el diseño de los campos:

  • Diseño secuencial: especifique el tamaño de empaquetado. Un campo se alinea según su tamaño natural o el tamaño de empaquetado, lo que da como resultado el desplazamiento más pequeño del campo. Establezca rFieldOffsets y ulClassSize en cero.

  • Diseño explícito: especifique el desplazamiento de cada campo o especifique el tamaño de clase y el tamaño de empaquetado.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: Cor.h

Biblioteca: usada como recurso en MSCorEE.dll

Versiones de .NET Framework: está disponible desde la versión 1.0

Consulte también