是否有任何Marshal方法可以实例化格式化的即用型对象?
“格式化”是指一个结构,其布局使用StructLayout和MarshalAs等属性进行格式化。
有些代码需要澄清。
public struct s1
{
public int i1;
public int i2;
}
public struct s2
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
public s1[] _s1;
}
我想要的是调用一些Marshal方法,该方法实际上会返回一个现成的s2格式化实例。一些代码再次帮助理解。
s2 temp = Marshal<s2>.CrateEmpty();
int i = temp._s1[2].i1;
我需要这个功能,以避免在我的每个结构中创建一个方法来制作这种格式化的东西。在上面的代码中,Marshal.CreateEmpty()应该能够将s2._s1实例化为具有5个元素的数组。
有什么想法吗?
感谢。