固定托管列表<>获取指向数据的指针

时间:2015-02-03 18:12:44

标签: c# unmanaged managed unsafe pinning

我需要快速将通用.net列表中的数据传递给非托管代码,并且由于列表内部是一个数组,我想将其固定并获取指向数据的指针,但基本的固定似乎并不指向数据,而不是对象本身。

如何在c#中声明和填充的List获取包含数组的数据的本机访问权限?

1 个答案:

答案 0 :(得分:2)

使用ToArray功能,然后固定生成的数组。以下是ToArray的快速来源。

public T[] ToArray()
{
    T[] array = new T[_size];
    Array.Copy(_items, 0, array, 0, _size);
    return array;
}

在技术意义上,您可以使用反射来获取列表的_items成员然后将其固定,但是......