Marshal方法创建格式化类型的实例?

时间:2016-04-14 10:32:21

标签: c# struct marshalling low-level

是否有任何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个元素的数组。

有什么想法吗?

感谢。

0 个答案:

没有答案