Freigeben über


IMetaDataEmit::SetClassLayout-Methode

Schließt das Layout der Felder für eine Klasse ab, die durch einen vorherigen Aufruf von IMetaDataEmit::DefineTypeDef-Methode definiert wurde.

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

Parameter

  • td
    [in] Ein mdTypeDef-Token, das die Klasse angibt, die angeordnet werden soll.

  • dwPackSize
    [in] Die Komprimierungsgröße: 1, 2, 4, 8 oder 16 Bytes. Die Komprimierungsgröße ist die Anzahl der Bytes zwischen benachbarten Feldern.

  • rFieldOffsets
    [in] Ein Array von COR_FIELD_OFFSET-Strukturen, von denen jede ein Feld der Klasse und den Offset des Felds in der Klasse angibt. Beenden Sie das Array mit mdTokenNil.

  • ulClassSize
    [in] Die Größe der Klasse in Bytes.

Hinweise

Die Klasse wird zuerst durch den Aufruf der IMetaDataEmit::DefineTypeDef-Methode und die Angabe eines der folgenden drei Layouts für die Felder der Klasse definiert: automatisch, sequenziell oder explizit. Normalerweise verwenden Sie das automatische Layout und überlassen es der Common Runtime Language, die Felder bestmöglich anzuordnen.

Vielleicht möchten Sie die Felder aber auch wie bei nicht verwaltetem Code anordnen. Wählen Sie in diesem Fall entweder das sequenzielle oder das explizite Layout aus, und rufen Sie SetClassLayout auf, um das Layout der Felder abzuschließen:

  • Sequenzielles Layout: Geben Sie die Komprimierungsgröße an. Ein Feld wird entweder entsprechend seiner natürlichen Größe oder der Komprimierungsgröße ausgerichtet, je nachdem, welcher Wert den kleineren Offset des Felds ergibt. Legen Sie rFieldOffsets und ulClassSize auf 0 (null) fest.

  • Explizites Layout: Geben Sie entweder den Offset für jedes Feld oder die Klassengröße und die Komprimierungsgröße an.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: Cor.h

Bibliothek: als Ressource in MSCorEE.dll verwendet

.NET Framework-Versionen: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Siehe auch

Referenz

IMetaDataEmit-Schnittstelle

IMetaDataEmit2-Schnittstelle