Metodo IMetaDataEmit::SetClassLayout
Completa il layout dei campi per una classe definita da una chiamata precedente al metodo DefineTypeDef.
Sintassi
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
Parametri
td
[in] Token mdTypeDef
che specifica la classe da disporre.
dwPackSize
[in] Dimensioni di compressione: 1, 2, 4, 8 o 16 byte. La dimensione di compressione è il numero di byte tra i campi adiacenti.
rFieldOffsets
[in] Matrice di strutture COR_FIELD_OFFSET , ognuna delle quali specifica un campo della classe e l'offset del campo all'interno della classe . Terminare la matrice con mdTokenNil
.
ulClassSize
[in] Dimensione, in byte, della classe .
Commenti
La classe viene inizialmente definita chiamando il metodo IMetaDataEmit::D efineTypeDef e specificando uno dei tre layout per i campi della classe: automatico, sequenziale o esplicito. In genere, si usa il layout automatico e si consente al runtime di scegliere il modo migliore per disporre i campi.
Tuttavia, è possibile che i campi siano disposti in base alla disposizione usata dal codice non gestito. In questo caso, scegliere il layout sequenziale o esplicito e chiamare SetClassLayout
per completare il layout dei campi:
Layout sequenziale: specificare le dimensioni di compressione. Un campo viene allineato in base alla dimensione naturale o alla dimensione di compressione, a seconda del risultato dell'offset più piccolo del campo. Impostare
rFieldOffsets
eulClassSize
su zero.Layout esplicito: specificare l'offset di ogni campo o specificare le dimensioni della classe e la dimensione di compressione.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: Cor.h
Libreria: Usato come risorsa in MSCorEE.dll
Versioni di .NET Framework: Disponibile dalla versione 1.0