Metodo IMetaDataEmit::SetClassLayout
Completa il layout di campi per una classe definita da una chiamata precedente a Metodo IMetaDataEmit::DefineTypeDef.
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 per cui definire il layout.dwPackSize
[in] Dimensione di compressione: 1, 2, 4, 8 o 16 byte. La dimensione di compressione è il numero di byte tra 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.
Note
La classe inizialmente viene definita chiamando il metodo IMetaDataEmit::DefineTypeDef e specificando uno dei tre layout disponibili per i campi della classe: automatico, sequenziale o esplicito. Normalmente è sufficiente utilizzare il layout automatico e lasciare che sia il runtime a scegliere la disposizione ottimale dei campi.
Può tuttavia capitare di dover disporre i campi secondo la disposizione utilizzata 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 la dimensione di compressione. Un campo viene allineato in base alla relativa dimensione naturale o alla dimensione di compressione, a seconda di quale di questi due valori corrisponda all'offset minore. Impostare rFieldOffsets e ulClassSize su zero.
Layout esplicito. Specificare l'offset di ogni campo o specificare la dimensione della classe e la dimensione di compressione.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: Cor.h
Libreria: utilizzata come risorsa in MSCorEE.dll
Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0