В более новых версиях ILAsm вы можете просто сделать:
.method public static void Foo ()
{
.export [1]
// code ...
}
Это экспортирует Foo по индексу 1 в таблице экспорта.Порядковые номера экспорта должны быть уникальными и последовательными.
В более старых версиях вам нужно будет выполнить:
.data vt = int32 (0) [n]
.vtfixup [n] int32 fromunmanaged at vt
.method public static void Foo ()
{
.vtentry 1:1
.export [1]
// code ...
}
(где 'n' - это количество экспорта, которое вы хотите.)
.vtentry
указывает, в каком vtable: слоте для хранения метода. (Идентификаторы таблицы являются последовательными и, следовательно, зависят от порядка объявления.)
Более новые ILAsms выполняют всю эту работу за вас, при условиивы не используете таблицу экспорта ни для чего другого.
Обратите внимание, что все это очень непереносимо.