固定对象是否也会固定对象中包含的引用?

时间:2011-12-09 19:44:21

标签: .net pinvoke

我有一个本机函数,它需要在C和C#中引用结构定义,如下所示:

typedef struct _dataBlob 
{
    DWORD   length;
    BYTE    *data;
} DataBlob

[StructLayout(layoutKind.Sequential)]
public struct DataBlob
{
    public uint length;
    public byte[] data;
}

我会通过ref将它传递给本机函数,它工作得很好。根据我的理解,结构在调用之前为我固定,并在调用返回时取消固定。我不确定的是,当它为我引入这个结构时,它是否也固定结构中引用的byte []?我是否必须将其固定以确保GC在通话期间不会移动它?是否需要设置一些属性以确保它被固定或者在本机堆上为我创建了副本?

0 个答案:

没有答案