Получение MethodTable для массивов - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь получить Methodtable для экземпляров массива, то есть int [], long [] et c. Я могу получить MerthodTable без каких-либо проблем для любых других классов, кроме массивов.

Вот код, который я использую для получения указателя таблицы методов, и как убедиться, что он работает

 private static unsafe int* GetMethodtable<T>(T obj) {
    var referenceForObject= __makeref(obj);
    return (int*)(*(int*)*((int*)&referenceForObject));
 }

var instance = new MyClass();
var methodtableAddress = (int*)*GetMethodtable(instance);
var @equals = (int*)typeof(MyClass).TypeHandle.Value == methodTableAddress;

В приведенном выше код @equals равен true для любого другого класса, кроме типов массивов. У меня вопрос, как получить methodTableAddress для типов массивов, используя указатель на объект?

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