Compartir a través de


IMetaDataEmit::SetClassLayout (Método)

Completa el diseño de campos para una clase definida por una llamada anterior a IMetaDataEmit::DefineTypeDef (Método).

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

Parámetros

  • td
    [in] Símbolo (token) mdTypeDef que especifica la clase que se va a diseñar.

  • dwPackSize
    [in] Tamaño de empaquetado: 1, 2, 4, 8 ó 16 bytes. El tamaño de empaquetado es el número de bytes entre los 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 estos tres diseños para los campos de la clase: automático, secuencial o explícito. Normalmente, se utiliza el diseño automático, dejando que el tiempo de ejecución elija la mejor forma de diseñar los campos.

Sin embargo, es posible que desee diseñar los campos conforme a la disposición utilizada por el código no administrado. En tal 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 conforme a su tamaño natural o al tamaño de empaquetado, el valor que dé lugar al menor desplazamiento 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 de .NET Framework.

Encabezado: Cor.h

Biblioteca: se usa como recurso en MSCorEE.dll

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Vea también

Referencia

IMetaDataEmit (Interfaz)

IMetaDataEmit2 (Interfaz)