Type.StructLayoutAttribute Property
Gets a StructLayoutAttribute that describes the layout of the current type.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.Runtime.InteropServices.StructLayoutAttributeGets a StructLayoutAttribute that describes the gross layout features of the current type.
| Exception | Condition |
|---|---|
| NotSupportedException | The invoked method is not supported in the base class. |
StructLayoutAttribute is not returned by the GetCustomAttributes method. Instead, use this property to get it.
The following code example first defines a class, a structure, and a structure with special layout attributes (the structures are nested within the class). The example then uses the StructLayoutAttribute property to obtain a StructLayoutAttribute for each type, and displays the properties of the attributes.
using System; using System.Runtime.InteropServices; public class Example { public static void Main() { DisplayLayoutAttribute(typeof(Example).StructLayoutAttribute); DisplayLayoutAttribute(typeof(Test1).StructLayoutAttribute); DisplayLayoutAttribute(typeof(Test2).StructLayoutAttribute); } private static void DisplayLayoutAttribute(StructLayoutAttribute sla) { Console.WriteLine("\r\nCharSet: "+sla.CharSet.ToString()+"\r\n Pack: "+sla.Pack.ToString()+"\r\n Size: "+sla.Size.ToString()+"\r\n Value: "+sla.Value.ToString()); } public struct Test1 { public byte B1; public short S; public byte B2; } [StructLayout(LayoutKind.Explicit, Pack=1)] public struct Test2 { [FieldOffset(0)] public byte B1; [FieldOffset(1)] public short S; [FieldOffset(3)] public byte B2; } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.