C# Создание управляемого объекта в неуправляемой памяти

Я пытаюсь создать управляемый объект в неуправляемой памяти, выделенной из Marshal.AllocHGlobal(). В настоящее время, когда я пытаюсь вызвать делегата конструктора из данных отражения, я получаю исключение, что объект имеет неправильный тип. Я считаю, что если бы я мог получить указатель vftable на объект и скопировать его в выделение памяти, я мог бы обмануть язык, заставив его вызвать конструктор, но просто получить указатель на статический экземпляр объекта уже сложно, и я не знаю, находится ли указатель vftable в первых 8 байтах, не говоря уже о том, могу ли я вообще скопировать его. Есть ли другой способ сделать это без всей этой ерунды?

Кроме того, я знаю, что это не поддерживается; я не хочу видеть комментарии, в которых говорится об этом.

Юлия
Вопрос задан14 августа 2024 г.

1 Ответ

2
Епифан
Ответ получен8 сентября 2024 г.

Ваш ответ

Загрузить файл.