Прикрепление объекта также закрепляет ссылки, включенные в объект? - PullRequest
1 голос
/ 09 декабря 2011

У меня есть встроенная функция, которая ожидает ссылку на определение структуры в C и в C # следующим образом:

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

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

Я бы передал это нативной функции по ссылке, и она прекрасно работает. Насколько я понимаю, структура прикрепляется для меня перед вызовом и отменяется, когда вызов возвращается. В чем я не уверен, так это когда он прикрепляет эту структуру для меня, также он прикрепляет байт [], указанный в структуре? Должен ли я прикрепить его, чтобы убедиться, что GC не будет перемещать его во время вызова? Есть ли какой-то атрибут, который мне нужно установить, чтобы убедиться, что он закреплен или что для меня в собственной куче создана копия?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...