在结构体中实现元素固定长度定义

3/8/2017来源:ASP.NET技巧人气:1210

 有的时候,由于接口或模板需要,必须在结构中定义元素的长度,方便解释。那么怎么办呢?通过MarshalAsAttribute类来实现(指示如何在托管代码与非托管代码之间封送数据。)具体如下:

[StructLayoutAttribute(LayoutKind.Sequential)]

        public struct   NET_DVR_ACTIVATECFG         {             uint    dwSize;             [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = PASSWD_LEN, ArraySubType = UnmanagedType.Struct)]            public byte[] sPassWord ;             [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 108, ArraySubType = UnmanagedType.I1)]             public byte[] byRes; 

        }

注意:[StructLayoutAttribute(LayoutKind.Sequential)]结构序列化声明。